メインビューが次の構造を持つ非常に単純な 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
が呼び出されます。ただし、背景は黄色に変わりません。
何が起こっているのかよくわかりません。ご意見をお聞かせください。