У меня есть UITableView с пользовательской ячейкой, каждая из которых содержит горизонтальное прокручивание UICollectionView. Когда ячейки просмотра таблицы возвращаются, горизонтальное положение прокрутки в виде коллекции перерабатывается вместе с ним. Должен ли я вручную обновлять позицию прокрутки коллекции при создании новых ячеек? И если есть способ сохранить положение прокрутки на основе каждой ячейки?iOS Swift: Как подготовить ячейку для повторного использования
пользовательских UITableViewCell
class CustomCell: UITableViewCell, UICollectionViewDelegate, UICollectionViewDataSource {
var collectionView:UICollectionView!
var layout = UICollectionViewFlowLayout()
var collectionData = [UIImage]()
let kCellIdentifier = "Cell"
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
layout.minimumLineSpacing = 10.0
layout.minimumInteritemSpacing = 1.0
layout.scrollDirection = UICollectionViewScrollDirection.Horizontal
collectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: layout)
collectionView.registerClass(ItemCell.self, forCellWithReuseIdentifier: kCellIdentifier)
collectionView.delegate = self
collectionView.dataSource = self
addSubview(collectionView)
}
override func layoutSubviews() {
super.layoutSubviews()
layout.itemSize = CGSize(width: 800, height: bounds.height)
collectionView.frame = bounds
}
}
extension ProjectCell: UICollectionViewDataSource {
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 5
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(kCellIdentifier, forIndexPath: indexPath) as! ItemCell
//Reset collectionView scroll position?
return cell
}
}
Есть ли способ запомнить положение прокрутки для каждой ячейки? Поэтому, когда я перейду обратно в ячейку, с которой я ранее взаимодействовал, она будет находиться в той же позиции прокрутки? – colindunn
Вам необходимо сохранить позицию прокрутки на контроллере табличного представления и применить его, когда вы предоставляете представление таблицы в ячейке. – Rengers
Могу ли я сохранить это значение в ячейке или мне нужно сохранить его в контроллере представления? – colindunn