0

我正在尝试做一些非常基本的事情。我想向我的 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;

谢谢阅读!

4

1 回答 1

2

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

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

或者

- (void)awakeFromNib { ... }

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

于 2013-01-02T15:16:26.667 回答