我的故事板中有一个UITableViewController与UINavigationController连接。当我向下滚动桌子时,我可以看到行到后面的行到“导航栏”。
做一个简短的检查,我意识到导航栏不会影响表格大小(看起来导航栏在我的桌子前面)。从我选择表格大小时开始:
-(CGFloat)tableView:(UITableView *)tableViews heightForRowAtIndexPath:(NSIndexPath *)indexPath{
CGFloat value = tableViews.frame.size.height;
NSLog(@"Table size -> %f",value);
return value/2;
}
他在我的窗口返回相同的大小...我可以做些什么来使“导航栏”影响我桌子的大小?
答案 0 :(得分:1)
您有几个选择。请尝试以下方法之一:
从表格视图框高度中减去导航栏和状态栏的高度。
CGFloat value = tableViews.frame.size.height - CGRectGetMaxY(self.navigationController.navigationBar.frame);
不要将表格视图放在导航栏后面。通过将以下行添加到表视图控制器的viewDidLoad
:
self.edgesForExtendedLayout = UIRectEdgeLeft | UIRectEdgeRight;
这可以防止表格视图进入导航栏或工具栏。
还有一点需要注意。如果您希望所有行都具有相同的高度,请不要实现heightForRowAtIndexPath
方法。相反,只需设置表格视图的rowHeight
属性。