【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)
}