0

私は非常に基本的なことをしようとしています。UIViewサブクラスにサブビューを追加したいと思います。これを以下のようにinitWithFrameメソッドに入れると思いますが、このクラスのインスタンスであるビューはこのサブビューを描画しません。私は何が間違っているのですか?

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        redView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 20, 20)];
        [redView setBackgroundColor:[UIColor redColor]];
        [self addSubview:redView];
    }

    return self;
}

ところで、redViewは、次のように、サブクラスのヘッダーで定義されたプロパティです。

@property (strong, nonatomic) UIView *redView;

読んでくれてありがとう!

4

1 に答える 1

2

初期化コードを次の中に配置する必要があります。

- (id)initWithCoder:(NSCoder *)aDecoder { ... }

また

- (void)awakeFromNib { ... }

これらのメソッドは、ビューがペン先から読み込まれるときに呼び出されます。上記のメソッドで[super...]を呼び出すことを忘れないでください。

于 2013-01-02T15:16:26.667 に答える