在运行时访问UIView宽度

时间:2014-10-26 21:36:03

标签: ios swift uiview

在Swift中,如何在运行时获得使用自动布局约束以编程方式创建的UIView的宽度(或高度)?

我已尝试view1.frame.size.widthview1.frame.width,但都返回0

我已经按照MakeAppPie跟踪了一个自动布局教程,并添加了view1.layer.cornerRadius = view1.bounds.width/2,如下所示,但这没有任何效果,所以我在view1.bounds.width上做了一个po并得到{ {1}}:

0

4 个答案:

答案 0 :(得分:63)

添加此内容即可:

override func viewDidLayoutSubviews() {
        println(self.view1.frame.size)
    }

你可以随意看看宽度或高度。

答案 1 :(得分:8)

关于这些领域的一件事:

<td class="cell-1">
    <div><span class="value-frame">&nbsp;~ABC^,~DEF^</span></div>
</td>

如果视图已被绘制到屏幕,则仅是实际的用户设备大小,否则它们就是您在故事板中设置它们的内容。因此,如果您在绘制视图之前尝试执行某种计算,则必须以另一种方式计算宽度或高度!

答案 2 :(得分:6)

你只能使用这个

self.view1.frame.size.width
self.view1.frame.size.height

答案 3 :(得分:2)

帧的宽度和高度返回零,因为在viewDidLoad内部调用该函数时,其大小尚未正确。您可以使用viewDidAppear调用必要的功能