swift - 快速覆盖类的属性

标签 swift uiimageview uiviewcontentmode

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

class AspectFitUIImageView: UIImageView {

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

        set {
            // contentMode = contentMode
        }
    }
}

谁能告诉我哪里错了?

最佳答案

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

class AspectFitUIImageView: UIImageView {

    override func awakeFromNib() {
       super.awakeFromNib()
       contentMode = .scaleAspectFit
    }

}

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

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

关于swift - 快速覆盖类的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45365640/

相关文章:

ios - 使用 ScrollView 缩放图像 Swift ios

iOS 15 在进入 BLE 信标区域时不会唤醒应用程序

ios - 从 UIView 以编程方式创建 UIImage

ios - 模糊 UIImage 不剪裁(Swift)

swift - Xcode 在 1 个工作区下有 2 个项目

ios - 重新加载带有动画的表格 View 单元格(Swift)

c++ - iOS 如何打印c++变量的NSLOG(二维 vector 数组)?

ios - 如何截取屏幕截图并裁剪掉空白区域?

ios - 作为 SubView VS ChildViewController 查看

ios - iOS工具之前/之后