如何在具有自动布局的容器视图中将 UITableView 的大小设置为子视图
How do I set the size of UITableView as a subview in a Container View with Auto-layout
我目前有一个包含菜单栏和容器 UIView 的 UIViewController。
在主视图加载时,容器有一个带有单独主内容 UIViewController 的嵌入转场。
当我单击菜单栏中的按钮时,我使用以下代码设置了一个自定义 segue 以将 UITableViewController 加载到 UIView 容器中
-(void) perform {
BlockDetailViewController *src = (BlockDetailViewController *)[self sourceViewController];
UIViewController *dst = (UIViewController *)[self destinationViewController];
//Clear view of all subviews
for (UIView *view in src.viewContainer.subviews) {
[view removeFromSuperview];
}
//save destination
src.currentViewController = dst;
//set placeholderOutlet to destination
[src.viewContainer addSubview:dst.view];
}
这会将 UITableViewController 加载到 UIView 中,但是,似乎 UITableViewController 大小设置为默认 window 大小,这意味着 UITableViewController 的底部单元格从视图中隐藏。如果向上拖动,您可以看到它们,但是当您放手时,弹跳会将它们带出视图。
如何确保 UITableViewController 的大小与它所在的 UIView 的大小相同?
谢谢
定义dst时,可以使用CGRect设置其位置、宽度和高度。
您只需创建一个 CGRect(框架)并将其设置为视图框架:
dst.view.frame = CGRectMake( CGRectGetMinX(self.view.frame),
CGRectGetMinY(self.view.frame),
CGRectGetWidth(self.view.frame),
CGRectGetHeight(self.view.frame);
这些值应该是浮点值。这只是一个例子。
我目前有一个包含菜单栏和容器 UIView 的 UIViewController。
在主视图加载时,容器有一个带有单独主内容 UIViewController 的嵌入转场。
当我单击菜单栏中的按钮时,我使用以下代码设置了一个自定义 segue 以将 UITableViewController 加载到 UIView 容器中
-(void) perform {
BlockDetailViewController *src = (BlockDetailViewController *)[self sourceViewController];
UIViewController *dst = (UIViewController *)[self destinationViewController];
//Clear view of all subviews
for (UIView *view in src.viewContainer.subviews) {
[view removeFromSuperview];
}
//save destination
src.currentViewController = dst;
//set placeholderOutlet to destination
[src.viewContainer addSubview:dst.view];
}
这会将 UITableViewController 加载到 UIView 中,但是,似乎 UITableViewController 大小设置为默认 window 大小,这意味着 UITableViewController 的底部单元格从视图中隐藏。如果向上拖动,您可以看到它们,但是当您放手时,弹跳会将它们带出视图。
如何确保 UITableViewController 的大小与它所在的 UIView 的大小相同?
谢谢
定义dst时,可以使用CGRect设置其位置、宽度和高度。
您只需创建一个 CGRect(框架)并将其设置为视图框架:
dst.view.frame = CGRectMake( CGRectGetMinX(self.view.frame),
CGRectGetMinY(self.view.frame),
CGRectGetWidth(self.view.frame),
CGRectGetHeight(self.view.frame);
这些值应该是浮点值。这只是一个例子。