eif*_*cht 2 xcode uiview ios swift swift3
你好,我想一些样式应用到IBOutlets从Swift 3代码。但是,当我试图参照的IBOutlet从我的代码,只有当我加入immediatelly优越的工作UIView作为IBOutlet。
例如(为 View 内的所有标签元素添加字体样式):
宣言
@IBOutlet var exampleView: UIView!
里面 ViewDidLoad() func
for case let label as UILabel in exampleView.subviews {
            label.font = UIFont(name: "myfont-name", size: 13.0)
}
在这种情况下, thelabel是the的直接子代,exampleView这很好用。但我想在我的应用程序中为动态字体类型更改做更多通用代码。
当我尝试引用self.view.subviewsfor 循环所有标签时,没有数学层次结构深度,代码不起作用。
例子:
for case let label as UILabel in self.view.subviews {
            label.font = UIFont(name: "myfont-name", size: 13.0)
}
为此使用递归
func setFontToSubviews(view:UIView, font: UIFont) {
    for subview in view.subviews {
        if let label = subview as? UILabel {
             label.font = font
        }
        setFontToSubviews(view:subview, font:font)
    }
}
并使用所需的视图和字体调用此方法。