在Interface Builder中,UIButton的动态类型“自动调整字体”设置等效?

时间:2017-09-10 09:18:03

标签: ios xcode uibutton interface-builder

UILabel在Interface Builder的Attributes Inspector中有一个Dynamic Type: Automatically Adjusts Font复选框。

Interface Builder中是否有等效的用于自动调整UIButton的字体大小,还是必须在代码中处理?

我正在使用Xcode 9.0 beta 6,目标是iOS 11。

2 个答案:

答案 0 :(得分:8)

显然没有,但是修复起来并不是很困难。您可以使用UIButton属性在@IBInspectable上进行扩展:

extension UIButton {

    @IBInspectable
    var adjustsFontForContentSizeCategory: Bool {
        set {
            self.titleLabel?.adjustsFontForContentSizeCategory = newValue
        }
        get {
            return self.titleLabel?.adjustsFontForContentSizeCategory ?? false
        }
    }
}

现在,您只需为每个UIButton(或其任何子类)打开它即可。

Interface Builder

答案 1 :(得分:1)

好吧,似乎只有在Interface Builder中可以做到这一点。我使用的是Xcode 11.5版。

1。。首先像往常一样设置动态字体类型:

Dynamic Font for UIButton

我选择titleLabel.adjustsFontForContentSizeCategory是因为根据此link,它将是15 pt高,这是我之前为按钮设置的字体大小。

2。。您无需在代码中设置{{1}},而可以在Xcode的“用户定义的运行时属性”部分中进行设置。

User Defined Runtime Attributes for UIButton