ios - 用于识别 iPhone 6 和 iPhone 6 plus 竖屏的尺寸等级

标签 ios ios8 xcode6 xcode-storyboard

如何使用尺寸分类来唯一标识 iPhone 6 和 iPhone 6 plus 纵向屏幕?

我的应用程序在 iPhone 4 和 iPhone 5 上看起来不错,但由于屏幕尺寸的原因,在 iPhone 6 和 6 plus 上看起来一样,但有很多空白区域。虽然我使用的是自动布局,但我无法单独增加 iPhone 6 和 6 plus 的字体大小或 View 大小。我知道我们可以使用大小类更改字体大小和 View 大小。但就我而言,我不知道该怎么做。

我正在使用 xCode 6.1,我的应用程序支持从 iOS 7 到最新的 iOS 8.1。我只在 Storyboard 中期待解决方案,因为我完全在 Storyboard 中进行 UI 设计。如果 Storyboard 的功能有限,无法满足我的需求,请告诉我如何通过应用程序使用代码实现相同的功能?

最佳答案

根据 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
        }
    }
}

为了确定当前型号名称,请引用以下答案:https://stackoverflow.com/a/26962452/4165128

在 Storyboard 上,选择您要调整的标签,打开右侧 Pane ,选择身份检查器,然后将“adjustFontToRealIPhoneSize”属性添加到用户定义的运行时属性列表中(类型为“Boolean”并选中复选框) .

对您希望调整的每个标签执行相同的操作(复制和粘贴在这里非常有效)。

关于ios - 用于识别 iPhone 6 和 iPhone 6 plus 竖屏的尺寸等级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27065929/

相关文章:

ios - 如何在 Objective-C 中为蒙版图像添加不带蒙版的边框

ios - 长 CGPath 不渲染

swift - 返回空 Swift Xcode6 的 TableView 单元格

c++ - 如何将openCV导入到iOS 8项目中

ios - 将日期转换为设备时区

ios - Cocoapods 无法正确链接第三个、第四个目标(Xcode 7 beta 6)

swift - AVPlayerViewController 与来自 NSURL 的 AVPlayer

objective-c - 如何从 View Controller 中 resignFirstResponder

objective-c - 键盘扩展不适用于 iOS 8.1 模拟器

xcode - 在代码编辑器中禁用 Xcode 抗锯齿文本?