2016-03-29 31 views
6

UIButtonをサブクラス化し、ボタンの外観を変更するBoolのプロパティisActiveを追加します(これはデフォルトの.enabledプロパティとは関係ありません)。SwiftのボタンタイプでUIButtonのinitを上書きする方法は?

ただし、初期化時にボタンの種類を設定したいと考えています。 .buttonTypeは読み取り専用なので、私はちょうどそれが好きでオーバーライドすることはできません、しかし

let button = MyButton(type: .Custom) 

convenience init(type buttonType: UIButtonType) { 
    buttonType = buttonType 
    self.init() 
} 

このスピット具体的には、私は次のように、それはUIButtonであるように多くのそれを初期化したいですエラー:Cannot assign to value: 'buttonType' is a 'let' constant(私はすでにinit(coder:)を実装しています)。

したがって、初期化時に.buttonTypeを設定するにはどうすればよいですか?


注:カスタムプロパティも、その中にロジックを変更するために、他の関数で使用されなければならないので、私が代わりに外観を変更するために2つの関数を定義する、プロパティを拾いました。

+0

'buttonType = buttonType'迅速に理にかなってんの? – Fonix

+0

'self.buttonType = buttonType'を試してください – Chris

+0

@Chris同じ結果が得られました。 – Blaszard

答えて

-8

buttonTypeは、読み取り専用あなたはUIButtonの利便初期化子を経由してタイプを設定する必要がありそうです:

convenience init(type buttonType: UIButtonType) { 
    self.init(type: buttonType) 
    // assign your custom property 
} 
+0

いいえ。無限ループ。 –

関連する問題