用于识别iPhone 6和iPhone 6 plus肖像的尺寸等级

Blu*_*ngs 19 ios xcode-storyboard xcode6 ios8

如何使用尺寸类别唯一识别iPhone 6和iPhone 6以及纵向屏幕?

我的应用程序在iPhone 4和iPhone 5中看起来不错,但由于屏幕尺寸的原因,iPhone 6和6中的空白空间相同.虽然使用自动布局我不能仅为iPhone 6和6加上单独增加字体大小或视图大小.我知道我们可以使用大小类来改变字体大小和视图大小.但在我的情况下,不知道该怎么做.

使用xCode 6.1和我的应用程序支持从iOS 7到最新的iOS 8.1.我希望只在故事板中使用解决方案,因为我在故事板中完全完成了我的UI设计.如果storyboard的功能有限以满足我的需求,请告诉我如何通过应用程序实现相同的代码?

小智 24

根据iPhone类型调整字体大小的另一个选项是使用"用户定义的运行时属性".

定义UILabel的扩展:

extension UILabel {
    var adjustFontToRealIPhoneSize: Bool {
        set {
            if newValue {
                var currentFont = self.font
                var sizeScale: CGFloat = 1
                let model = UIDevice.CurrentDevice().modelName()

                if model == "iPhone 6" {
                    sizeScale = 1.3
                }
                else if model == "iPhone 6 Plus" {
                    sizeScale = 1.5
                }

                self.font = currentFont.fontWithSize(currentFont.pointSize * sizeScale)
            }
        }

        get {
            return false
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

要确定当前型号名称,请参阅以下答案:https://stackoverflow.com/a/26962452/4165128

在故事板上,选择要调整的标签,打开右窗格,选择标识检查器,然后将"adjustFontToRealIPhoneSize"属性添加到用户定义的运行时属性列表中(类型为"布尔"并选中复选框).

对您想要调整的每个标签执行相同操作(复制和粘贴令人惊讶地在这里工作).

  • 您可以将@IBInspectable添加到该扩展,然后您可以直接从Attributes Inspector编辑它. (5认同)

Jig*_*ola 8

在故事板中使用紧凑宽度和常规高度

在故事板中使用紧凑宽度和常规高度

通过添加乘数,添加相对于超级视图的高度和宽度的布局约束.假设您有图像视图,其大小超过超视图的一半,然后添加乘数0.5.

在此输入图像描述