Я написал функцию upvote/downvote для моих клеток коллекции.Swift - CollectionView, как найти первый и последний элементы в IndexPath?
Я сравниваю переменную счета ячейки с ячейками выше и ниже нее. У меня есть функция, содержащая следующий код после приема входного сигнала.
if cell != CVcellArray.first && cell != CVcellArray.last {
print("NOW CHECKING IP")
let ip_greater = NSIndexPath(forItem: ip!.item - 1, inSection: ip!.section)
let ip_less = NSIndexPath(forItem: ip!.item + 1, inSection: ip!.section)
let cell_greater = self.collectionView?.cellForItemAtIndexPath(ip_greater) as! CollectionViewCell
let cell_less = self.collectionView?.cellForItemAtIndexPath(ip_less) as! CollectionViewCell
// recursive call to allow the cell to jump over repeat scores
if cell.score > cell_greater.score {
checkIPGreater(ip!, origIp: ip!)
}
else if cell.score < cell_less.score {
checkIPLesser(ip!, origIp: ip!)
}
else {
//do nothing
}
}
else {
print("No need to check ip")
}
checkIPLesser/Greater функции, которые смотрят на повторные оценки так, что клетка может прыгать несколько пробелов, если upvoted.
Когда я выдвигаю/уменьшаю верхние/нижние ячейки ячейки, я разбился. Это я предположил, потому что стремительный пытается найти клетку, большую, чем самая большая клетка, или ниже, чем самая низкая ячейка, и она терпит неудачу. Поэтому я написал строку, которая проверила, была ли переадресация ячейки в первом массиве ячеек или в конце массива ячеек.
Несмотря на это, он все еще терпит неудачу. Я чувствую, что не правильно нахожу верхнюю или нижнюю клетки.
У меня есть один раздел с несколькими элементами внутри этого раздела (эти элементы являются ячейками). Есть ли способ получить доступ к элементам верхнего или нижнего места?
Хорошо, но я не уверен, как выполнить «Модель может затем обновить данные и переупорядочить элементы». Мне нужно будет перезагрузить весь просмотр коллекции? – user3488148