Создать пользовательский вид с перечислением - PullRequest
0 голосов
/ 19 февраля 2020

Я создаю пользовательское представление с перечислением для создания пользовательской фигуры, где бы она ни называлась. Я хочу контролировать это enum из Init, я не уверен, что это лучший способ

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

Anyone может помочь мне, что является лучшим способом реализации этого перечисления, я хочу, когда это представление вызывается, также необходимо установить Corner

Большое спасибо

1 Ответ

1 голос
/ 19 февраля 2020

Этот код должен работать для вас:

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)
...