如何为iPhone6和6+设备设置iphone4s,5和不同的字体和按钮大小?

时间:2016-01-11 12:50:07

标签: swift storyboard adaptive-layout

我正在开发一个iOS应用程序,我观察到iPhone 5,6,6+中的UI所有字体都是不同的设备,但我的要求是按钮大小和字体大小必须相同的iPhone4s,5和不同的iPhone 6和6 +。如何在我的应用程序中实现这一目标。我知道我们可以通过编程方式完成,但是有没有机会在故事板上使用自适应布局。

我正在使用xcode7.2,swift2。

提前致谢..

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题并使用Swifts Computed Properties解决了这个问题。 我创建了一个静态变量 fontsize ,由于屏幕的大小,它会使用适当的fontsize进行动态初始化。

import UIKit

class ViewFunctions {

    let screenSize = UIScreen.mainScreen().bounds.size
    static var fontsize: CGFloat {
        get {
            if screenSize.height >= 1024 { // iPad Pro
                return 16.0
            } else if screenSize.height >= 768 { // iPad
                return 16.0
            } else if screenSize.height >= 414 { // iPhone 6Plus
                return 15.0
            } else if screenSize.height >= 375 { // iPhone 6/s
                return 15.0
            } else if screenSize.height >= 320 { // iPhone 5/s
                return 14.0
            } else if screenSize.height >= 319 { // iPhone 4/s
                return 14.0
            } else {
                return 14.0
            }
        }
    }

}

然后使用它来设置按钮标签的字体大小:

import UIKit

class TestClass {    

    var testButton: UIButton = UIButton(type: UIButtonType.System) as UIButton!
    testButton.titleLabel!.font = UIFont(name: "Helvetica Neue", size: ViewFunctions.fontsize)
    testButton.setTitle("Test", forState: .Normal)
    // add button to view or sth like that...

}