首页 > 解决方案 > 使用枚举创建自定义视图

问题描述

我正在创建一个自定义视图,该视图具有一个枚举,可以在任何地方创建自定义形状。我想控制它enumInit我不确定这是最好的方法

class ReadOnlyView: UIView {

   public enum Corner {
      case half
      case quarter
   }

   public var corner = Corner.half

   public init(corner: Corner) {
      self.corner = corner
   }

   var textView = UITextView().autolayoutView()

它在init

'super.init' isn't called on all paths before returning from initializer

任何人都可以帮助我实现这个枚举的最佳方法是什么,我想在调用这个视图时,它还需要设置Corner

非常感谢

标签: swiftinit

解决方案


此代码应该适合您:

class ReadOnlyView: UIView {

    public enum Corner {
        case half
        case quarter
    }

    public var corner: Corner

    public init(corner: Corner) {

        self.corner = corner
        super.init(frame: .zero)
    }

    @available(*, unavailable)
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

为了从 ReadOnlyView 创建一个对象,你应该这样做:

let view = ReadOnlyView(corner: .half)

推荐阅读