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 回答