0

私は定期的に遅延読み込みを使用して、カスタム クラス、配列などをインスタンス化します。通常、パターンは次のとおりです。

@property (strong, nonatomic) Class *class;

...

- (Class *)class
{
    if(!_class) _class = [[Class alloc]init];
    return _class;
}

同じパターンを使用して UI 要素を構成することは可能ですか? たとえば、ViewWillAppear ですべてのボタンとビューをフォーマットする代わりに、getter でフォーマットを設定したいと考えています。例えば:

- (UIButton *)button
{
    if(!_button) {
        _button = [[UIButton alloc]init];
        self.button.backgroundColor = [UIColor redColor];
    }
    return _button;
}

問題は、ストーリーボードを使用していて、XCode がボタンをインスタンス化するため、nill かどうかを尋ねると常に false が返されることです。したがって、背景は決して変更されません。if-then を削除すると、ゲッターにアクセスするたびにバックグラウンドが設定されますが、これはおそらく問題ありませんが、最適ではありません。

では、UI 要素の getter を使用して要素を構成するにはどうすればよいでしょうか?

4

1 に答える 1