在Swift中,如何在运行时获得使用自动布局约束以编程方式创建的UIView的宽度(或高度)?
我已尝试view1.frame.size.width
和view1.frame.width
,但都返回0
。
我已经按照MakeAppPie跟踪了一个自动布局教程,并添加了view1.layer.cornerRadius = view1.bounds.width/2
,如下所示,但这没有任何效果,所以我在view1.bounds.width
上做了一个po并得到{ {1}}:
0
答案 0 :(得分:63)
添加此内容即可:
override func viewDidLayoutSubviews() {
println(self.view1.frame.size)
}
你可以随意看看宽度或高度。
答案 1 :(得分:8)
关于这些领域的一件事:
<td class="cell-1">
<div><span class="value-frame"> ~ABC^,~DEF^</span></div>
</td>
如果视图已被绘制到屏幕,则仅是实际的用户设备大小,否则它们就是您在故事板中设置它们的内容。因此,如果您在绘制视图之前尝试执行某种计算,则必须以另一种方式计算宽度或高度!
答案 2 :(得分:6)
你只能使用这个
self.view1.frame.size.width
self.view1.frame.size.height
答案 3 :(得分:2)
帧的宽度和高度返回零,因为在viewDidLoad内部调用该函数时,其大小尚未正确。您可以使用viewDidAppear调用必要的功能