如果在项目中启用了大小类,则无法使用约束计算行高?

Posted

技术标签:

【中文标题】如果在项目中启用了大小类,则无法使用约束计算行高?【英文标题】:Unable to calculate row height using constraints if size classes are enabled in project? 【发布时间】:2015-07-13 05:06:36 【问题描述】:

我的应用程序必须动态计算单元格高度,我的应用程序支持ios7iOS8。为此,我正在关注Ray wenderlich 教程。在花了一整天的时间后,我才知道这种技术只有在应用程序禁用 size classes 时才有效。

所以我的问题是如果启用size classes,如何使用自动布局(约束)计算行高?

【问题讨论】:

size 类用于支持不同设备,您需要动态高度,这将支持自动布局 是的,我正在使用自动布局,但如果启用大小类,我不会获得行高。 【参考方案1】:

当您在应用程序中使用约束时,自动高度计算仅适用于 IOS 8 及更高版本。它不依赖于size classes。您也可以使用不带尺寸等级的Constraint。 Check that link

谢谢

【讨论】:

我正在使用自动布局来计算行高,但如果启用了大小类,它就不起作用。那么如果启用了大小类,如何使用自动布局(约束)计算行高? 当您使用自动布局时,不能设置框架。您需要设置约束值,例如***.com/questions/31339702/…【参考方案2】:

您可以尝试在viewDidLoad 中将行高设置为UITableViewAutomaticDimension(但我认为它不适用于iOS 7)

self.tableView.estimatedRowHeight = 44; // need to calculate against something
self.tableView.rowHeight = UITableViewAutomaticDimension;

【讨论】:

我可以通过使用自动布局和约束(在 iOS7 和 iOS8 中)来获取单元格高度,但它只有在我禁用大小类时才有效。

以上是关于如果在项目中启用了大小类,则无法使用约束计算行高?的主要内容,如果未能解决你的问题,请参考以下文章

无法满足嵌套堆栈视图的约束

excel行高怎么设置最小值,行数过多无法显示的则自动设定?

如果控件大小小于列表框大小,则无法禁用垂直滚动查看器

如果在 html 中启用了 javascript,则无法获取控制器模型属性

UITableViewCell 高度根据行内容使用自动布局动态计算

[iOS 开发基础]- 动态计算cell行高