UIButton / UIDesign跨设备的可扩展性(iPhone 5/6/6 + / etc)

时间:2015-07-22 07:06:11

标签: ios iphone swift uibutton

我一直在以编程方式设计我的UI,利用名为iOSHat的工具将PSD图层转换为Swift Code,您可以(几乎完美地)将其复制并粘贴到XCode中。 PSD设计全部用于iPhone 6规格,但我希望能够将这些设计应用于iPhone 5或iPhone 4。虽然我一直在使用该工具,但它并没有真正影响这个问题背后的关键概念。下面是我在Splash Screen上设计的Button的代码......

    let loginButton = UIButton()
    loginButton.setTranslatesAutoresizingMaskIntoConstraints(false)
    loginButton.setBackgroundImage(UIImage(named: "loginButton"), forState: .Normal)
    loginButton.setTitleColor(UIColor(red: 1, green: 1, blue: 1, alpha: 1), forState: .Normal)
    loginButton.setTitle("LOGIN", forState: .Normal)
    loginButton.titleLabel!.font = UIFont(name: "Lato-Bold", size: 13.000)
    self.view.addSubview(loginButton)

    // align loginButton from the top and bottom
    self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-464.5-[loginButton]-142.5-|", options: .DirectionLeadingToTrailing, metrics: nil, views: ["loginButton": loginButton]))

    // align loginButton from the left and right
    self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-30-[loginButton]-196-|", options: .DirectionLeadingToTrailing, metrics: nil, views: ["loginButton": loginButton]))

    // width constraint
    self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:[loginButton(==149)]", options: .DirectionLeadingToTrailing, metrics: nil, views: ["loginButton": loginButton]))

    // height constraint
    self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:[loginButton(==60)]", options: .DirectionLeadingToTrailing, metrics: nil, views: ["loginButton": loginButton]))

当我在模拟器和测试设备上运行时,所有这些代码都能在我的iPhone 6上完美运行。但是当我在我的iPhone 5模拟器上运行它时,它显然似乎崩溃了。任何人都对我能做什么有任何想法,优化我的视觉约束,使这个按钮可以扩展到不同的设备。

0 个答案:

没有答案