具有属性的addSubView行为

时间:2014-02-08 13:16:32

标签: ios objective-c uikit

我正在尝试处理我应用中发生的事情...

我有一个UICollectionViewCell子类,它有一个UIImageView属性。

在该子类的init方法中,我以编程方式将imageView属性添加为类contentView的子视图:

    [self.contentView addSubview:self.imageView];

在发生这种情况时,'self.imageView'属性为null,因为尚未创建imageView并将其分配给该属性。

稍后在我的cellForItemAtIndexPath方法中,我将单元格的imageView属性指定为imageView对象。

此时我希望内容视图现在有一个有效的imageView子类,但这不是我所看到的。

所以我的问题是:为什么不起作用?

我是否可以将我的'null'属性imageView添加为我的self.contentView的子视图,然后将imageView属性指定为imageView对象,然后将该对象视为contentViews子视图之一?

我希望这个问题有道理,描述真是太痛苦了!

2 个答案:

答案 0 :(得分:2)

添加一个nil的子视图听起来不对我

我认为你使用了错误的方法。您应该在单元的init方法中实例化并添加imageView,然后在控制器的cellForItemAtIndexPath中分配像这样的图像

cell.imageView.image = the image you want...

答案 1 :(得分:1)

不,你不应该(而且你看它不起作用)。属性是对某个实例的引用。如果该实例尚不存在,那么您无法使用它。试图为未来的使用设置一些规则,它只是悄无声息。

您可以添加configureImageView:之类的方法,然后调用它。实现将设置属性并将图像视图添加为子视图。