如何以编程方式获取通过自动布局定位的项的实际呈现值?



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

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

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

,但实际值是

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

是因为logo有动态定位吗?当它们在屏幕上呈现时,我可以使用不同的对象来获取值吗?

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

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

最新更新