我有一个非常简单的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
方法永远不会被调用,而第一个 {{1} (蓝色的)改变甚至不起作用。
如果我将我的顶视图(上图中的UIView)设置为backgroundColor
,则背景确实会变为蓝色并调用CustomView
;虽然背景不会变成黄色。
我真的不明白发生了什么,我想得到你的意见。
答案 0 :(得分:0)
似乎没有显示自定义视图。它是否已正确添加为顶视图的子视图?你检查过它的超级视图是否是顶视图(UIView)?