如何以编程方式获取通过autolayout定位的项目的实际渲染值?

时间:2016-08-30 22:23:44

标签: swift autolayout storyboard

我目前在故事板上水平居中有一个徽标,垂直位于故事板顶部50个像素处,它的设置宽度为377,设置高度为200.我试图为另一个设置边界元素以编程方式使用绑定到徽标的IBOutlet,但返回的边界不是正确的值,至少从我在故事板中设置的值。

我希望logo.frame返回的值类似于

x = 100, y = 50, width = 377, height = 200

但实际值是

x = 0, y = 0, width = 240, height = 128

这是因为徽标具有动态定位吗?是否有一个不同的对象可以用来获取屏幕上呈现的值?

1 个答案:

答案 0 :(得分:2)

Have you tried to fetch the position after the layout has been changed, for example in viewDidAppear() ?

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    let width = logo.frame.width
}