UITableViewController 的view 属性是UITableView。所以你不能缩小它的view 来揭示背后的东西,因为它背后没有任何东西(至少就它而言)。
有一个相对简单的解决方案。我假设,根据您的代码示例,您的控制器上有一个名为“tableView”的UITableView 属性,如果没有,则需要创建它。
1) 将您的视图控制器更改为 UIViewController 子类,而不是 UITableViewController 子类。通过将YourClass:UITableViewController 替换为YourClass:UIViewController,在.h 中轻松完成。
2) 在.xib 文件中拖出一个新的UIView 到画布上(不在tableView 上)。
3) 拖动tableView成为视图的子视图,如图:
4) 将 File's Owner 的 view 属性连接为刚刚添加的 UIView。
5) 检查您的连接是否如下所示:
通过这些更改,您现在可以将 框架 设置为小于视图的大小。您有两种选择如何执行此操作:
1)使用如下代码:
-(void)viewDidLoad{
[super viewDidLoad];
// set background red to see change
self.view.backgroundColor = [UIColor redColor];
CGFloat sideMargin = 10;
CGFloat topBottomMargin = 44;
CGFloat originX = sideMargin;
// compute width based on view size
CGFloat sizeWidth = (self.view.bounds.size.width - (sideMargin * 2));
CGFloat originY = topBottomMargin;
// compute height based on view size
CGFloat sizeHeight = (self.view.bounds.size.height - (topBottomMargin * 2));
// set tableView frame
self.tableView.frame = CGRectMake(originX, originY, sizeWidth, sizeHeight);
}
2) 直接更改界面生成器中的设置。比如: