【Swift4】カスタムUIViewなどのinitメソッドの記述方法【iOS11】【Objective-C】
カスタムUIViewやUIButtonを作成した時に、initメソッド内で定数や配列の初期化などを行いたい場合があります。この時initメソッドをoverrideする必要があります。
1.initメソッドをoverrideする
objective-cの場合
- (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // 初期化などをここに記述 } return self; }
swiftの場合
override init(frame: CGRect) { super.init(frame: frame) // 初期化などをここに記述 }
2.'required' initializer 'init(coder:)' must be provided by subclass of ~ というエラーが出た場合
swiftの場合requiredメソッドも実装する必要があります
required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) }