将子视图的子类添加到UIView的子类中

时间:2013-01-02 14:56:23

标签: ios objective-c uiview

我正在尝试做一些非常基本的事情。我想在我的UIView子类中添加一个subView。我假设我会把它放在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;

感谢阅读!

1 个答案:

答案 0 :(得分:2)

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

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

- (void)awakeFromNib { ... }

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