子类uiview包含多个Uiviews



我想创建一个Uiview子类,该子类将在其初始化器中添加一个Uiview,例如:

    [self addSubview: someKindOfUIView];

这就是我在实现文件中实现的方式:

- (id)init
{
     self = [super initWithFrame:CGRectMake(0, 0, 110, 110)];
     if (self) {
        self.grayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 20, 20)]; 
        self.grayView.backgroundColor = [UIColor grayColor];
        [self addSubview:self.grayView];
        [self setBackgroundColor:[UIColor blueColor]];
    }
   return self;
}

但是,当我尝试使用此类实例时,实例只显示一个蓝色框,而不是一个包含灰色盒子的蓝色框。我该如何解决,这是可能的吗?:)

好吧,经过一些测试和研究,我找到了答案!

在我的.h文件中,我的指针较弱,指向Grayview属性:

@property(非原子,)uiview *grayview;

相反,应该是:

@property(非原子, strong )uiview *grayview;

我有点明白原因,但是我不能很好地解释它,因此,如果有人可以解释为什么(以一种简单的方式)Grayview必须有一个强大的指针而不是弱指针,请在此答案下发表评论;)

最新更新