大小类字体

时间:2015-02-16 20:42:46

标签: ios iphone xcode autolayout

我有一个视图,每行有4行3个按钮,所有按钮都具有相同的高度和宽度。我在设置iPhone的字体大小时遇到​​了麻烦。我使用的是尺寸等级"紧凑的宽度,常规高度"。如果我将字体大小设置为只适用于iPhone 4S或iPhone 5 ,那么它对于iPhone 6和6 plus来说太小了,反之亦然。我试图以编程方式完全覆盖字体,但似乎故事板中设置的值总是取代:

for button in self.mainMenuButtons {
        button.layer.borderWidth = 4
        button.layer.borderColor = UIColor(r: 156, g: 177, b: 215, alpha: 1).CGColor
        button.layer.cornerRadius = 7

        button.titleLabel?.textAlignment = .Center
        button.setTitleColor(UIColor.redColor(), forState: .Highlighted)

     if let type = phoneType {
            switch type {
            case .iPhone4:
                break
            case .iPhone5:
                button.titleLabel?.font = UIFont.systemFontOfSize(1)
            case .iPhone6:
                break
            case .iPhone6P:
                break
            }
        } else { /* iPad */ }
}

这是一种经过验证的方法,用于识别用户拥有的设备。我在上面的代码中将字体设置为1只是为了测试,但肯定的是,字体大小不是1. mainMenuButtons是所有按钮所在的插座集合。

1 个答案:

答案 0 :(得分:0)

我可以根据您提供的信息更改按钮字体。你的代码中还必须有其他东西。也许是插座系列?如果没有正确连接到xib / storyboard,它可能会无声地失败。

尝试为此viewController的其中一个按钮创建一个新的插座。如果你可以用这个插座修改它,那么问题就是连接。如果您无法使用这个新创建的插座修改它,那么您还有另一个问题,即无法在SO上识别。

(要回答原来的评论,&#34;故事板中设置的值似乎总是取代&#34;:情况并非如此。一旦xib在加载视图时从-initWithCoder:脱离,除了约束之外,不会从故事板信息中修改这些值。这就是为什么-viewDidLoad是修改已加载元素的地方的原因,此时已完成。)< / p>

不要忘记继续检查switch语句中的断点和/或日志,以确保其他内容不会导致代码无法运行。希望这可以帮助。