故事板最大尺寸

时间:2014-12-12 07:54:55

标签: ios xcode swift uibutton storyboard

我正在使用Xcode 6中的iPhone应用程序,我已经为我的视图设置了约束。我想确保UIButton不会脱离页面或在极大尺寸的设备上丢失其宽高比。

UIButton使用约束作为视图的中心 UIButton限制在边距的水平边缘

问题是在iPhone 6上加按钮是巨大的。如何设置UIButton的最大尺寸?我希望它能够扩展,但一旦达到150x150,我希望它不再增长。

由于

1 个答案:

答案 0 :(得分:9)

您创建了Width less Than or Equal 150约束。这是因为按钮具有固有宽度,因此约束将其限制为最大宽度为150磅 但这会与你的边缘限制发生冲突,因为他们想让按钮宽度超过150点。如果降低边缘约束的优先级,则宽度约束优先。只有在不破坏宽度约束的情况下,才会满足边缘约束。边缘约束不会消失,它们仍然会在按钮上设置一些“拉”,但它们无法断言它们的全部“力”。所以他们只需将它拉到150点的最大宽度。

您就是这样做的:

创建“常规”宽度约束,然后在侧栏中编辑该约束,使其成为“小于或等于”约束。

enter image description here

接下来,选择边缘约束并将其优先级降低到小于1000的值。

enter image description here

你有一个按钮,一直长到150点宽。

enter image description here

代码:

let button = UIButton()
button.setTranslatesAutoresizingMaskIntoConstraints(false)
button.backgroundColor = UIColor.redColor()
button.setTitle("Button", forState: .Normal)
view.addSubview(button)

let centerXConstraint = NSLayoutConstraint(item: button, attribute: .CenterX, relatedBy: .Equal, toItem: self.view, attribute: .CenterX, multiplier: 1, constant: 0)
view.addConstraint(centerXConstraint)
let centerYConstraint = NSLayoutConstraint(item: button, attribute: .CenterY, relatedBy: .Equal, toItem: self.view, attribute: .CenterY, multiplier: 1, constant: 0)
view.addConstraint(centerYConstraint)

let views = ["button" : button]

let horizontalConstraints = NSLayoutConstraint.constraintsWithVisualFormat("|-(100@999)-[button(<=150)]-(100@999)-|", options: nil, metrics: nil, views: views)
view.addConstraints(horizontalConstraints)

最后两行包含重要约束。