【问题标题】:Storyboard Max dimensions故事板最大尺寸
【发布时间】:2015-02-10 21:35:39
【问题描述】:

我正在使用 Xcode 6 开发 iPhone 应用程序,并且我已经为我的视图设置了约束。我想确保 UIButton 不会离开页面或在极端尺寸的设备上失去其纵横比。

UIButton 使用约束以视图为中心 UIButton 被限制在水平边缘到边缘

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

谢谢

【问题讨论】:

    标签: ios xcode swift uibutton storyboard


    【解决方案1】:

    您创建了一个Width less Than or Equal 150 约束。之所以有效,是因为按钮具有固有宽度,因此约束将其最大宽度限制为 150 pt。
    但这会与您的边缘约束相冲突,因为他们想让按钮宽于 150 点。如果降低边缘约束的优先级,则宽度约束优先。边缘约束只有在不破坏宽度约束的情况下才会被满足。边缘约束并没有消失,它们仍然在按钮上声明一些“拉”,但它们不能声明它们的全部“力”。所以他们只是把它拉到150点的最大宽度。

    这就是你的做法:

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

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

    你有一个按钮,它会增长到 150 点宽。

    在代码中:

    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)
    

    最后两行包含重要的约束。

    【讨论】:

      猜你喜欢
      • 2018-04-21
      • 1970-01-01
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多