有人能帮我解决我的问题吗。
我有一个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
}
当自动布局引擎完成所有工作时。还要记住,在视图生命周期中,此函数可能会被多次调用。