我试图让我的一些细胞更高。我尝试使用
CGRect rect = cell.frame;
NSLog(@"before height: %f",rect.size.height);
rect.size.height +=20;
cell.frame = rect;
NSLog(@"AFTER height: %f",cell.frame.size.height);
in
的cellForRowAtIndexPath
和
willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath :( NSIndexPath *)indexPath
日志显示值已更改,但未显示模拟器中的任何更改。
感谢您的帮助
答案 0 :(得分:2)
使用tableView:heightForRowAtIndexPath
方法。
Apple docs清楚地解释了该怎么做。 UITableView class reference
每个tableView都有一个委托属性。将它设置到viewController并实现上面的方法。它的签名是
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
因此,根据 indexPath ,返回您想要的高度。
如果您希望所有行保持不变的高度,则可以使用rowHeight
的{{1}}属性。
答案 1 :(得分:0)
使用UITableViewDelegate的heightForRowAtIndexPath
。例如:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return indexPath.row == _pages.count - 1 ? 408 : 450;
}
答案 2 :(得分:0)
要使某些单元格更大,您应该实现方法tableView:heightForRowAtIndexPath:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (<SOMETHING>) {
return height1;
} else {
return height2;
}
}
tableView:cellForRowAtIndexPath:
用于配置tableView需要显示的单元格的内容。
请注意,如果您有一个非常大的表(1000多个条目),tableView:heightForRowAtIndexPath:
会对性能产生影响,当表视图显示时,会在每一行调用此方法。