2016-08-30 15 views
0

我目前在故事板上有一个水平居中的标志,从故事板的顶部垂直放置50个像素,它具有377的设置宽度和200的设置高度。我试图设置另一个元素的边界以编程方式使用绑定到徽标的IBOutlet,但是返回的边界不是合适的值,至少从我在故事板中设置的值来看。如何以编程方式获取通过自动布局定位的项目的实际呈现值?

我预计值从logo.frame返回是这样的

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

但实际值是

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

这是因为它的商标具有动态定位是什么?我可以使用不同的对象来获取屏幕上呈现的值吗?

+2

直到自动布局运行后,该框架才会正确。检查'viewDidLayoutSubviews'中的框架。 – vacawama

回答

2

您是否尝试在布局更改后获取位置,例如在viewDidAppear()中?

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