我正在尝试做一些非常基本的事情。我想将一个子视图添加到我的UIView子类中。我假设我将把它放在initWithFrame方法中,如下所示,但是作为此类实例的视图不会绘制此子视图。我究竟做错了什么?

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        redView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 20, 20)];
        [redView setBackgroundColor:[UIColor redColor]];
        [self addSubview:redView];
    }

    return self;
}


BTW redView是在子类的标题中定义的属性,例如:

@property (strong, nonatomic) UIView *redView;


谢谢阅读!

最佳答案

您应该将初始化代码放入:

- (id)initWithCoder:(NSCoder *)aDecoder { ... }


要么

- (void)awakeFromNib { ... }


从笔尖加载视图时将调用这些方法。不要忘记在上述方法中调用[super ...]。

10-08 08:06