1

メインビューが次の構造を持つ非常に単純な UIViewController があります。

UIView
-->CustomView

私のCustomViewは次のようになります

-(id) initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if (self) {
        [self setBackgroundColor:[UIColor blueColor]];
        NSLog([NSString stringWithFormat:@"Init with frame %f,%f,%f,%f", self.frame.origin.x, self.frame.origin.y, self.frame.size.width, self.frame.size.height]);
    }
    return self;
}

- (void)drawRect:(CGRect)rect {
    NSLog([NSString stringWithFormat:@"Drawing CGRect %f,%f,%f,%f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height]);
    [self setBackgroundColor:[UIColor yellowColor]];
}

ログを見るinitと、適切なフレームで が呼び出されていることがわかりますが、私のdrawRectメソッドは呼び出されず、最初 backgroundColorの変更 (青い部分) も機能しません。

トップ ビュー (上の図の UIView) を に設定するCustomViewと、背景が青に変わり、drawRectが呼び出されます。ただし、背景は黄色に変わりません。

何が起こっているのかよくわかりません。ご意見をお聞かせください。

4

1 に答える 1

0

カスタム ビューが表示されていないようです。トップ ビューにサブビューとして適切に追加されていますか? そのスーパービューがトップ ビュー (UIView) であるかどうかを確認しましたか?

于 2013-11-07T10:42:36.903 に答える