我以为这个信息会更容易找到: -)
UITableViewCell 的默认高度是多少? 它看起来像44像素,但我想确定一下。
听起来不错。但是为了确保可以加载 Interface Builder,在项目中放入一个 UITableViewCell,然后检查“检视器”窗口中的 size 属性。我现在没有携带我的 MacBook,所以我不能检查。但是如果你没有从别人那里得到一个更好的答案,这就是你可以自己检查的方法。
绝对是44像素,我永远不会忘记这个数字。
44px 也是 UIToolbar 和 UINavigationBar 的默认高度(当自动旋转到横向时,两者都切换到32px)
当 style = UITableViewStyleGrouped时,顶部和底部单元格的默认高度实际上是 45.0f(而不是 44.0f)。而且,如果分组表只有一行,则单元格高度将为 46.0f。
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 4和 Swift 5中,简单地使用:
UITableView.automaticDimension
使用44px 是不够的,因为它会随着不同的屏幕像素密度而变化。