我想为我的UITableView
创建一个布局,使其分为两部分:
第一部分有3排标准高度(44px),
第二部分有一行,其中包含UITextView
,它完全填满了这个单元格。棘手的部分是我想将此textView
的单元格行调整到可见tableview
区域的高度,以便文本视图占据屏幕上的剩余视图。我如何在
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
剩下的高度是什么样的?我之前根据可用的两种iPhone屏幕尺寸(480和568)进行了硬编码假设,但是使用新的iPhone6和iPhone 6+屏幕,我不想使用任何假设值来计算它。
答案 0 :(得分:3)
您已经在tableView.bounds.size.height
处拥有表格视图的高度,您只需要从中减去第一部分的高度。所以
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 0)
{
return 44;
}
return tableView.bounds.size.height - 44 * 3;
}
使用标题,根据其行为方式,您可以使用rectForHeaderInSection:
或rectForSection:
来获得高度
答案 1 :(得分:0)
如果您确定永远不会更改行数,则可以从故事板中执行此静态操作。 您可以根据需要插入原型单元格。通过自动布局或自动调整,您可以将单元格设置为静态或随屏幕大小增加。
但是如果你真的想以编程方式进行编程,你可以通过self.view.bounds.size.height
获取屏幕高度,取出3个单元格和2个标题,剩下的就是你的UITextView单元格。