UITableViewCell 的默认高度是多少?

我以为这个信息会更容易找到: -)

UITableViewCell 的默认高度是多少? 它看起来像44像素,但我想确定一下。

61486 次浏览

听起来不错。但是为了确保可以加载 Interface Builder,在项目中放入一个 UITableViewCell,然后检查“检视器”窗口中的 size 属性。我现在没有携带我的 MacBook,所以我不能检查。但是如果你没有从别人那里得到一个更好的答案,这就是你可以自己检查的方法。

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

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

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

如果要动态计算,只需分配一个虚拟表单元格并读出其高度即可

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

通过这种方式,你可以抵御未来版本 iOS 的变化,尽管我认为这不太可能。

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

如果希望在任何设备上使用默认维度,可以使用: UITableViewAutomaticScale

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


return UITableViewAutomaticDimension;
}

虽然44像素是目前的默认值,这是一个有用的方法,如果您的应用程序依赖于有默认值设置。

更新: 不知何故,我的 iPhoneXS 有一个奇怪的配置,这增加了默认高度。在重置 iPhone 之后,它恢复为默认的44 pt。


在 iOS12上,类似 iPhone X 的设备(X,XS,XS Max,XR)的默认高度是 49分

IOS12上的其他设备仍然默认使用 44分。 这是一个微妙的差异,但它感觉像一个很好的改善,在直接比较。

如果你不相信我,在这个截图中测量你自己(不要忘记除以3) ... ;)

Swift 4Swift 5中,简单地使用:

UITableView.automaticDimension

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