2016-02-08 2 views
0

У меня есть UICollectionViewController и некоторые ячейки (UICollectionViewCell). Я хочу рисовать изображения на некоторых ячейках. Это отлично работает, но когда я прокручиваю, некоторые из ячеек, кажется, излишне повторно используются, другими словами, ячейки, на которые я явно не нарисован, нарисованы (только после прокрутки).Ячейка чрезмерно повторно используется

В моей камере я сделать следующее:

imageView = UIImageView(frame: CGRectMake((self.bounds.size.width/4)-1, (self.bounds.size.height/4)-1, 30, 30)); 
imageView!.image = imageTick 
self.addSubview(self.lblDay) 
self.addSubview(imageView!) 

Я создаю вид изображения и установить его изображение затем добавить вид метки и изображения.

Кто-нибудь видит, что я делаю неправильно?

Только в случае полноты здесь, как я инициализацию изображения для ячейки:

let imageTick:UIImage = UIImage(named: "star")! 
var imageView:UIImageView? = nil 

ответ

2

UICollectionViewCell s повторно используются системой, так что вам нужно обрабатывать возможность ячейки повторного использования в prepareForReuse метод UICollectionViewCell, очистив все из ячейки (настройка изображения на ноль и т.д.)

Here is the doc for UICollectionReusableView that declares that

Here is the doc for UICollectionView Вы можете увидеть в этом документе, Ф.О. В методе dequeueReusableCellWithReuseIdentifier:forIndexPath: речь идет о вызове prepareForReuse, если имеется доступная ячейка для повторного использования.

+0

Очень хороший отзыв. Я ноль изображение, и он не произвольно появляется где-то, он не нужен. Но теперь мне нужно перерисовать изображение. Я установил логическое значение в ячейке, когда оно было выбрано, но я должен, вероятно, сбросить его и в prepareForReuse. Независимо от того, я не уверен, когда смогу перерисовать изображение. – dasPing

+0

@dasPing вы можете установить правильное изображение для своей ячейки в своей реализации dequeueReusableCellWithReuseIdentifier –

+0

@dasPing http://stackoverflow.com/questions/19269266/reused-cells-in-a-uicollectionview-show-multiple-uiimageviews-when-they -should-o взгляните на это тоже, это не предполагает использование addubview для вашего изображения –

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