Xcode 7 Swift 2运行时对象大小不同

时间:2016-04-16 12:12:16

标签: ios swift autolayout runtime size

有人可以帮我解决我的问题。

我有一个Viewcontroller。我刚刚添加了一个" View"对象并设置" View"的宽度对象到屏幕宽度,当前在运行时和设计尺寸显示为320(iPhone 4s)。但是当我检查" View"的宽度时在运行时它的对象显示我240."视图"的宽度属性。设计模式中的对象向我显示320.我想要我的" View"根据所使用的iPhone,自动调整到屏幕宽度的对象。例如,如果我在iPhone 6上模拟这个,屏幕宽度是375但是" View"仍在向我展示240.同样适合身高。

高度也一样。在设计模式中,高度显示我284,但在运行时,它显示我128。

我在" View"中有一个按钮。对象大小为80 x 80,但在运行时,它显示我46 x 30。

以下是我的"查看"设置:

View Object Height Constraints

View Object Vertical Constraints

我获取" View"的宽度的代码如下:

    @IBOutlet weak var tapBtn: UIButton!
    let buttonSize: CGRect = tapBtn.bounds
    tapBtnWidth = buttonSize.width
    tapBtnHeight = buttonSize.height

按钮......

web = conn.create_security_group('test', 'couch_db')
web.authorize('tcp', 1, 65535, '0.0.0.0/0')
web.authorize('tcp', 5984, 5984, '0.0.0.0/0')

我们非常感谢您的帮助/建议。提前谢谢。

1 个答案:

答案 0 :(得分:1)

实际上可能会在Auto-Layout完成工作之前分配与维度相关的属性,然后继续使用错误的值。

如果你需要更新一些依赖于自动布局的值 - 最好这样做:

override func viewDidLayoutSubviews() {
       // Update your values there
}

当Auto-Layout引擎完成所有工作时。另请注意,在视图生命周期中可能会多次调用此函数。

相关问题