【问题标题】:Overriding the class's property swift快速覆盖类的属性
【发布时间】:2017-07-28 05:40:05
【问题描述】:

我想覆盖 UIImageViewContentMode,所以我编写了这段代码,但它似乎没有按预期工作。

class AspectFitUIImageView: UIImageView {

    override var contentMode: UIViewContentMode {
        get {
            return .scaleAspectFit
        }

        set {
            // contentMode = contentMode
        }
    }
}

谁能告诉我哪里错了?

【问题讨论】:

    标签: swift uiimageview uiviewcontentmode


    【解决方案1】:

    您应该像这样在 awakeFromNib() 中设置 contentMode:

    class AspectFitUIImageView: UIImageView {
    
        override func awakeFromNib() {
           super.awakeFromNib()
           contentMode = .scaleAspectFit
        }
    
    }
    

    或者,如果您不打算使用 Nib 或 Storyboard,您可以使用以下内容:

    override init(frame: CGRect) {
        super.init(frame: frame)
        contentMode = .scaleAspectFit
    }
    

    【讨论】:

    • 我不能直接覆盖属性?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 2016-07-20
    • 2020-10-21
    • 2023-03-31
    相关资源
    最近更新 更多