【问题标题】:Swift - UIAppearance ClassSwift - UIAppearance 类
【发布时间】:2018-08-09 22:29:12
【问题描述】:

我的 Storyboard 中有标签通过 IBOutlet 连接到我的视图控制器

我已经扩展了 UILabel 如下

extension UILabel {
    func winnerLabel() -> UILabel {
        let winnerLabel = UILabel()
        winnerLabel.textColor = UIColor.red
        winnerLabel.textAlignment = .left

        return winnerLabel
    }
}

在我的视图控制器中,我想将情节提要中的标签设置为与获胜者标签具有相同的外观。

将标签的样式属性设置为获胜者标签的最佳方法是什么?

我可以单独做,即textColor=winnerLabel.text color,但是觉得一定有更好的办法。

【问题讨论】:

    标签: ios swift uiappearance


    【解决方案1】:

    不要使用函数。使用 UILabel 子类,用所需的特性初始化自身,并使情节提要中的标签成为该子类的实例。

    【解决方案2】:

    您可以在 IB 中分配此类

    class CustomLabel: UILabel {
        override init(frame: CGRect) {
            super.init(frame: frame)
            shared()
        }
        required init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
            shared()
        }
        func shared() {
           // all the layout code from above
           self.textColor = .red
           self.textAlignment = .left
        }
    }
    

    //

    //

    以编程方式

    let lbl = CustomLabel(frame:CGRect(x:0,y:20,width:200,height:200))
    

    【讨论】:

    • 您将如何以编程方式为已创建的标签设置类?我觉得不可能
    • 这对Storyboard来说很棒,通过代码更改类怎么样?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多