2014-02-08 65 views
0

我試圖讓剛剛發生在我的應用程序句柄...addSubView行爲與性能

我有有一個UIImageView的財產UICollectionViewCell子類。

在該子類的init方法,我編程的ImageView的屬性添加爲類內容查看的子視圖:

[self.contentView addSubview:self.imageView]; 

在這種情況來看,「self.imageView」屬性是null作爲ImageView的有尚未創建並分配給該物業。

後來在我的cellForItemAtIndexPath方法中,我將單元格的imageView屬性賦值爲一個imageView對象。

在這一點上,我期望內容視圖現在有一個有效的imageView子類,但這不是我所看到的。

所以我的問題是:爲什麼它不工作?

我應該能夠添加我的'null'屬性imageView作爲我的self.contentView的子視圖,然後將imageView屬性等同於一個imageView對象,然後將該對象視爲其中一個contentViews子視圖?

我希望這個問題是有道理的,這是一個痛苦的描述!

回答

1

不,你不應該(你看到它不起作用)。屬性是對某個事物實例的引用。如果那個實例不存在,那麼你不能使用它。試圖不爲未來使用制定一些規則,它只是靜靜地無所事事。

您可以添加一個方法,如configureImageView:,然後調用它。該實現將設置屬性並將圖像視圖添加爲子視圖。

+0

許多感謝的信息的圖像,我推翻了ImageView的屬性的設置也添加爲一個子視圖,我認爲這是一個很好的解決方案? – Woodstock

+0

這取決於你在做什麼。我在很多方面喜歡其他答案(+ 1'd) - 爲什麼傳遞圖像視圖而不是圖像? – Wain

2

添加一個無子聽起來不對的子視圖

我認爲你使用的是錯誤的方法。您應該實例,並在您cell's init方法增加您的ImageView,然後在你的控制器的cellForItemAtIndexPath分配這樣

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

非常感謝您的信息 – Woodstock