2

Swift で UILabel のサブクラスを作成しました。ラベルの種類に基づいて、フォント、色サイズなどのラベルのプロパティをカスタマイズしたいと考えています。

このラベルはストーリーボード ファイルで作成されます。ラベルのタイプを識別するために、カスタム プロパティ名 'labelType' を作成しました。この labelType は、割り当てられるとその値を決して変更しません。したがって、このプロパティを「let」に作成する必要がありますが、問題は、 initWithCoderが呼び出される前にこのプロパティを定義する必要があることです。

initWithCoder の初期値を動的に設定するにはどうすればよいですか? (または他のデフォルトコンストラクタ?)

現在、プロパティをvarとして作成しており、ストーリーボード自体からそのプロパティの値を設定しています(ユーザー定義のランタイム属性)

ここにコードがあります

class BMLabel: UILabel {

    var labelType:NSNumber!
    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)!
    }
    override func awakeFromNib() {
        self.setUpProperties()

    }
    func setUpProperties() {
        switch(labelType) {
        case 1:
            self.font = Constants.FONTS.LIST_UUID_FONT

絵コンテのイメージ

4

0 に答える 0