У меня есть UICollectionView
с включенной горизонтальной подкачкой, каждая ячейка заполняет весь экран и содержит одну ImageView
.
. Я хочу обновить обе ячейки, которые занимаются нумерацией страниц (если вы поворачиваетесь изот 0 до 1, я хочу обновить их оба в середине пути)
, поэтому я переопределил следующие методы:
public func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
let pageWidth = collectionView.frame.size.width
var currentPage = collectionView.contentOffset.x / pageWidth
if (0.0 != fmodf(Float(currentPage), 1.0)) {
currentPage += 1
}
let indexPath = IndexPath(row: Int(currentPage), section: 0)
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyCell", for: indexPath) as? MyCell else {
return
}
// This cell is moving out of screen
cell.image.isHidden = true
}
и
public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
let pageWidth = collectionView.frame.size.width
var currentPage = collectionView.contentOffset.x / pageWidth
if (0.0 != fmodf(Float(currentPage), 1.0)) {
currentPage += 1
}
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyCell", for: IndexPath(row: Int(currentPage), section: 0)) as? MyCell else {
return
}
// This cell entered the screen
cell.image.isHidden = false
}
проблема заключается в том, что ни одно из изменений в скрытом состоянии изображения не вступит в силу, если я напечатаю cell.image.isHidden
, оно показывает правильное состояние, но пользовательский интерфейс не обновляется.