2014-02-08 5 views
0

Я пытаюсь получить ручку на то, что происходит в моем приложении ...addSubView поведения со свойствами

У меня есть подкласс UICollectionViewCell, который имеет UIImageView как свойство.

В методе инициализации этого подкласса, я программно добавить свойство ImageView как подвид из contentView классов:

[self.contentView addSubview:self.imageView]; 

На момент это происходит, свойство «self.imageView» равно нулю, поскольку ImageView имеет не было создано и присвоено собственности еще.

Позже в моем методе cellForItemAtIndexPath я назначил свойство imageView ячейки равным объекту imageView.

На данный момент я ожидаю, что теперь у содержимого будет действительный подкласс imageView, но это не то, что я вижу.

Так что мой вопрос: почему это не работает?

Должен ли я добавить свое свойство свойства null, как subView моего self.contentView, а затем назначить свойство imageView равным объекту imageView, а затем увидеть этот объект как один из подзонов contentViews?

Надеюсь, этот вопрос имеет смысл, это было болью для описания!

ответ

1

Нет, вы не должны (и вы видите, что это не работает). Свойство является ссылкой на экземпляр чего-то. Если этот экземпляр еще не существует, вы не сможете работать с ним. Попытка не создавать какое-то правило для будущего использования, это просто тихо ничего не делает.

Вы можете добавить способ, например configureImageView:, и назвать это вместо этого. Реализация установит свойство и добавит представление изображения в качестве подзаголовка.

+0

большое спасибо за информацию, я преодолела значение свойства ImageView также добавить как subView, я думаю, что это хорошее решение? – Woodstock

+0

Это зависит от того, что вы делаете. Мне нравится другой ответ во многих отношениях (+ 1'd) - зачем передавать изображение вместо вместо изображения? – Wain

2

Добавление подвида, который ноль звучит неправильно меня

Я думаю, что вы используете неправильный подход. Вы должны создать экземпляр и добавить ImageView в методе cell's инициализации, а затем, в cellForItemAtIndexPath вашего контроллера присвоить изображение, как это

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

Большое спасибо за информацию – Woodstock

Смежные вопросы