表格视图单元格高度自动调整为屏幕大小

时间:2012-12-25 12:57:22

标签: ios uitableview

我已经实现了一个需要我内容的tableView。只显示5个单元格。我现在无法实现的目标如下:

我希望五个单元格均匀分布在tableview的高度上,取决于所使用的iphone。所以从逻辑上来说,iPhone 5的高度应该比iPhone 4更高。如果有视网膜或没有视网膜,那么应该正确分配细胞。

我必须为此提供不同的背景图像吗? 什么是最好的方法:

tableview看起来像这样:

[HEADER] [A - TEXT 1] [B - TEXT 2] [C - TEXT 3] [D - TEXT 4] [电子文本5]

一天结束时不应该滚动。只需自动均匀分布的细胞。

我很高兴能帮忙......

谢谢

1 个答案:

答案 0 :(得分:5)

首先,如果你可以使用UITableViewDelegate方法tableView:heightForRowAtIndexPath:来简单地返回表格高度除以5,这将使每个单元格成为表格高度的五分之一:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return [tableView bounds].size.height / (CGFloat)[myDataSourceArray count];
}

这适用于iPhone 5和iPhone 4,前提是您已将表配置为屏幕大小。此外,考虑到在iOS编程时您指定的屏幕尺寸为点而不是像素,允许iOS自动处理缩放,您无需为视网膜/非视网膜设置细胞。

然后关于背景图片,根据您想要的最终结果,有几种不同的方法可以做到这一点。例如,如果您只想用图案图像填充单元格并让默认表格视图分隔符将它们分开,则可以使图像达到实现图案所需的最小尺寸。 (可能是2x2px和4x4 @ 2x)然后只需使用:

[[cell contentView] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"myPatternImage"]]];

或者,如果您希望在单元格周围显示某种边框的图像,则可以使用带有cap insets的可调整大小的图像在边框周围绘制,然后使用模式,这是一个截图,以帮助解释它是如何工作的:

enter image description here

然后当然你可以添加一个UIImageView作为单元格的子视图并将完整的图像添加到它不完全错误,但我不推荐它,因为另一个我建议的两种方式更有效。希望这有帮助!

相关问题