Я пытаюсь обновить некоторые ограничения для ячейки в зависимости от хода прокрутки внутри моего TableView.Цель состоит в том, чтобы воссоздать этот эффект: https://youtu.be/VMyNHq3CO04?t=416 (в 6:56)
В настоящее время у меня есть все ячейки с пробелами и закругленным углом.Сейчас я получаю позицию смещения scrollView моего tableView и запускаю следующую функцию:
func updateCellState(position: CGFloat) {
let numberOfItems = tableView.numberOfRows(inSection: 0)
for i in 0..<numberOfItems {
guard let cell = tableView(tableView, cellForRowAt: IndexPath(row: i, section: 0)) as? FMReceiptReviewCellWithContextualActions else {
break
}
tableView.beginUpdates()
self.stretch = position / 1000 > 1 ? 1 : position / 1000
cell.delegate?.updateCellState(position: position)
cell.setNeedsLayout()
cell.layoutIfNeeded()
tableView.endUpdates()
}
}
updateCellState
принимает позицию scrollView для пропорционального обновления моего ограничения.
Но у меня есть несколько серьезных проблем с этим кодом:
- С точки зрения производительности функция часто вызывается из-за scrollView (даже при вызове
updateCellState
только на 30,40, ... точка смещения) - Мои ячейки не всегда обновляются, и их необходимо удалить из очереди для перезагрузки и отображения моих ячеек с новыми параметрами (
reloadData()
работы tableView,но не подходит для плавного потока)
У вас есть идеи, как я мог бы воспроизвести эффект, который я упомянул выше.