UITableViewCell的默认高度是多少?


166

我认为这些信息会更容易找到:-)

UITableViewCell的默认高度是多少?它看起来像44像素,但我希望可以确定。

Answers:


361

这是44像素。绝对是 我永远不会忘记那个数字。

UIToolbar和UINavigationBar的默认高度也是44px。(当自动旋转为横向时,两者都切换为32px。)


61
哈哈,“我永远不会忘记那个数字”听起来不祥;-)
罗布

4
@antony:view.bounds.size.height
samvermette,2010年

4
@MikeyWard:您可能已经知道了,但是高度中包含了1px分隔符。它实际上覆盖了单元格的最底层内容。
本S

44
从技术上讲,它是44分。它将在Retina显示屏上显示为88px。不要分裂头发或其他任何东西。
Ben Mosher

23
tableView.rowHeight
Hunter

27

如果要在任何设备上使用默认尺寸,则可以使用:UITableViewAutomaticDimension

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    return UITableViewAutomaticDimension;
}

尽管当前默认值为44像素,但是如果您的应用依赖于设置默认值,这是一种有用的方法。


3
UITableView.automaticDimensions在Swift 4
Bot

仅当您要的是默认高度时,此选项才有效。如果您实际上想要默认高度的某个倍数,则此值返回的值不是实际高度。苹果公司已经将真实的点高隐藏在这个神奇数字后面(恰好是-1)。
PKCLsoft

16

设为时style = UITableViewStyleGrouped,顶部和底部单元格的默认高度实际上是45.0f(不是44.0f)。并且,如果分组表只有一行,则单元格高度将为46.0f


包括分隔符吗?
lhunath

10

如果您想即时计算,只需分配一个哑表单元并读取其高度即可

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
int height = cell.frame.size.height ;

这样,您就可以防御将来的iOS版本中的更改,尽管我认为这不太可能。


这与自动版式存在问题
MobileMon

27
一切都与自动布局有关。
devios1 2013年

有问题的,究竟如何?
AndrewR

3

“当style = UITableViewStyleGrouped时,顶部和底部单元格的默认高度实际上是45.0f(而不是44.0f)。而且,如果分组表只有一行,则单元格高度将是46.0f。” 这是不对的!!实际上是44.0f!我只是测试一下!


2

听起来不错。但是要确保可以加载“接口”构建器,请将UITableViewCell放入项目中,然后在“检查器”窗口中检查size属性。我现在没有随身携带的MacBook,因此无法检查。但是,如果您没有从某个人那里得到更好的答案,这就是您可以进行自我检查的方式。


啊,好的,那是我最初从那儿得到44的地方。
罗布

2

Swift 4Swift 5中,只需使用:

UITableView.automaticDimension

使用44px不够用,因为它会随屏幕像素密度的不同而变化。


0

在iOS 12上,iPhone X等设备(X,XS,XS Max,XR)的默认高度为49pt

iOS 12上的其他设备仍默认使用44pt。这是一个细微的差异,但是在直接比较中感觉很好。

如果您不相信我,请在此屏幕截图中自行衡量(不要忘了除以3)...;)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.