Как получить доступ к ячейкам, которые появятся, до того, как они появятся?

У меня есть представление коллекции, но ячейка, которая не отображается на экране, я не могу получить к ней доступ, 1...5 в порядке, а те, что находятся в строке индекса 6, 7, и их нужно прокручивать, чтобы увидеть

func Action0(sender: UIButton!) {
    for i in 0...7 {
        if i != 0{
        var indexPath = NSIndexPath(forRow: i, inSection: 0)
        var cell = collectionView!.cellForItemAtIndexPath(indexPath)
        cell!.backgroundColor = UIColor.whiteColor()
        }else{
        var indexPath = NSIndexPath(forRow: 0, inSection: 0)
        var cell = collectionView!.cellForItemAtIndexPath(indexPath)
        cell!.backgroundColor = UIColor.blueColor()
        }
    }
}

Как получить доступ к тем ячейкам, которые еще не видны?

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("CollectionViewCell", forIndexPath: indexPath) as! CollectionViewCell
    cell.backgroundColor = UIColor.blackColor()
    cell.textLabel.text = "\(indexPath.section):\(indexPath.row)"
    cell.buttonView.setBackgroundImage(UIImage(named: "Good"), forState: UIControlState.Normal)
    cell.buttonView.addTarget(self, action: Selector("Action\(indexPath.row):"), forControlEvents: UIControlEvents.TouchUpInside)
    return cell
}

person Josip Bogdan    schedule 22.05.2015    source источник


Ответы (1)


Ячейки, которые еще не видны, не существуют. Представления таблиц и представления коллекций создают только те ячейки, которые видны в данный момент. При прокрутке ячейки, которые выходят из поля зрения, перерабатываются и повторно используются для новых путей индекса, которые появляются в поле зрения.

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

person Duncan C    schedule 22.05.2015
comment
Является ли эта функция, которую я добавил в пост, той, которая создает и/или перерабатывает? - person Josip Bogdan; 23.05.2015
comment
@JosipBogdan В вашем коде collectionView.dequeueReusableCellWithReuseIdentifier(_:forIndexPath:) создает или повторно использует существующее представление. - person Brian Nickel♦; 23.05.2015
comment
Я пробовал несколько вещей и все еще не работает, могу ли я получить еще немного толчка? - person Josip Bogdan; 23.05.2015