我有UITableView
并且有10行(这是一个动态表,因此将加载更多行)。
每个单元格/行应具有全屏的高度。现在iOS中有不同的屏幕尺寸。
因此,我无法为单元格行提供固定的高度,因为iOS设备的高度不同。
那么我怎样才能使单元格高度适合屏幕高度?
答案 0 :(得分:3)
如果您的tableView
在ViewController中,那么您可以使用以下代码:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return CGRectGetHeight(self.view.bounds);
}
否则,如果您的屏幕全屏显示,请使用此
return CGRectGetHeight([[UIScreen mainScreen] bounds]);
否则,如果您的屏幕也包含导航栏,请使用
return CGRectGetHeight([[UIScreen mainScreen] bounds] - 64.0f);
或者最佳解决方案可能是
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return CGRectGetHeight(tableView.bounds);
}
<强>被修改强>
最好使用rowHeight
属性而不是delegate
。原因如下:
使用会对性能产生影响
tableView:heightForRowAtIndexPath:
代替rowHeight
。一切 显示表视图的时间,它调用tableView:heightForRowAtIndexPath:
代表每个代表 行,这可能导致表的显着性能问题 具有大量行(大约1000或更多)的视图。
感谢rdelmar
答案 1 :(得分:0)
这个怎么样?
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return self.view.frame.size.height-yourTableViewStartingYPosition;
}
如果全屏显示,则为return self.view.frame.size.height