1

初期化子でUIViewを独自のビューに追加するUIViewサブクラスを作成したいと思います。

    [self addSubview: someKindOfUIView];

これは私が実装ファイルにそれを実装した方法です:

- (id)init
{
     self = [super initWithFrame:CGRectMake(0, 0, 110, 110)];
     if (self) {

        self.grayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)]; 
        self.grayView.backgroundColor = [UIColor grayColor];

        [self addSubview:self.grayView];
        [self setBackgroundColor:[UIColor blueColor]];

    }

   return self;
}

しかし、このクラスのインスタンスを使用しようとすると、インスタンスにはブルーボックスのみが表示され、灰色のボックスを含むブルーボックスは表示されません。どうすれば修正できますか?:)

4

1 に答える 1

1

さて、いくつかのテストと調査の後、私は答えを見つけました!

私の.hファイルには、grayViewプロパティへの弱いポインタがありました。

@property(nonatomic、weak)UIView * grayView;

代わりに、次のようになります。

@property(非アトミック、ストロング)UIView * grayView;

理由はわかりますが、うまく説明できないので、grayViewに弱いポインタではなく強いポインタが必要な理由を(簡単に)説明できる場合は、この回答の下にコメントしてください;)

于 2012-11-11T12:21:25.723 に答える