【发布时间】:2014-12-04 12:38:42
【问题描述】:
我在UITableViewCell.contentView中放了一个CustomView,将自定义视图的autoresize mask设置为W+H。
但是在运行时,CustomView 的高度比ContentView 高,ContentView 的高度为60pt(与UITableViewDelegate 中的设置相同),但内部的CustomView contentView 的高度是 76pt。
Xcode6's view debugging,我在自定义视图上看到了一些奇怪的约束,它们是:
self.height = superview.height + 16
self.midY = superview.midY + 8
这些约束来自哪里以及如何修改它们?我从来没有设置过 8 或 16 的值。
更新:
我制作了一个测试项目,它只是情节提要中的一个表格视图,带有从 nib 文件加载的CustomView,并且该测试项目在运行时复制了问题,CustomView 是 @ 的子视图987654338@ 的高度变得比TableViewCell.contentView 大。
测试项目在这里: https://drive.google.com/file/d/0B5y_NrRbhGlSb1dlbVZNb19vNjQ/view?usp=sharing
【问题讨论】:
-
您是否在故事板中禁用了 IB 的自动布局。
-
@AshishP。谁的自动布局?表格视图还是自定义视图?
-
它属于你的整个故事板。尝试取消选中它然后检查。
-
@AshishP。 CustomView 不在 table view 的 storyboard 中,它在一个 xib 文件中,它是动态加载的。
-
好的。因此,您正在情节提要中使用自动布局,并且正在从 xib 文件加载自定义视图。然后尝试以编程方式在您的自定义视图上添加相对于父视图的约束。这可能有助于将自定义视图高度保持在 contentview 边界内。
标签: ios iphone ios8 autolayout