【发布时间】:2017-05-25 06:29:06
【问题描述】:
我有一个 UIComponent,它是一个简单的视图(我缩小了问题范围)。 这是 xib 和类:
然后我把这个组件放在故事板的一个视图中,设置它的约束:
所以通常红色矩形根据设备宽度有不同的宽度值。
在图形上就是这种情况,组件可以正确调整自身大小,但是当我调用函数来打印其宽度时,无论启动应用程序的设备是什么,结果总是相同的。
实际上,该值始终是组件在情节提要中的实际宽度。
这太奇怪了。 有没有办法知道 UIComponent 的实际宽度?
非常感谢您的帮助:)
【问题讨论】:
-
约束是如何配置的?
-
@Eric - 它为
print(self.frame.width)打印的值是多少?它是显示任何值,还是返回零?您究竟是如何为StatBarView设置NSLayoutConstraint值的?您是否将它们设置为相对或等于其父视图的宽度,或者左右两侧是否限制在其父视图的左右边缘? -
StatBarView 有高度修正,垂直居中,左右两侧限制为超级视图。打印的值是storyboard的StatBarView宽度,与运行时的宽度不对应。例如,如果我在 storyboard 中设置 iPhone SE,宽度为 239 像素,即使在 iPhone 7 plus 上执行时也会使用此值。
标签: ios swift storyboard width uicomponents