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



有人能帮我解决我的问题吗。

我有一个Viewcontroller。我刚刚添加了一个"View"对象,并将"View"物体的宽度设置为屏幕宽度,目前在运行时和设计尺寸时显示为320(iPhone 4s)。然而,当我在运行时检查"View"对象的宽度时,它会显示240。"视图"对象在设计模式下的宽度属性显示为320。我希望我的"视图"对象根据使用的iPhone自动调整到屏幕宽度。例如,如果我在iPhone 6上模拟这个,屏幕宽度是375,但"视图"仍然显示240。高度也是如此。

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

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

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

查看对象高度限制

查看对象垂直约束

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

   @IBOutlet weak var gameSpace: UIView!
   var gsWidth: CGFloat = 0
   var gsHeight: CGFloat = 0
  let gsSize: CGRect = gameSpace.bounds
  gsWidth = gsSize.width 
  gsHeight = gsSize.height

对于按钮。。。

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

非常感谢你的帮助/建议。提前谢谢。

实际上可能存在的情况是,在Auto Layout完成任务之前,您分配了与维度相关的属性,然后继续使用错误的值。

如果你需要更新一些依赖于自动布局的值,最好在这里更新:

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

当自动布局引擎完成所有工作时。还要记住,在视图生命周期中,此函数可能会被多次调用。

最新更新