У меня есть вид прокрутки, в котором есть три изображения по горизонтали с включенной разбивкой по страницам. В портретном режиме вид прокрутки работает идеально, как и ожидалось. Но при повороте в альбомный режим он сначала застревает примерно на половине точки двух изображений, а затем, когда я начинаю прокручивать, он работает нормально. Я попытался начать со среднего изображения при повороте в альбомную ориентацию и поэтому использовал приведенный ниже код. Но contentOffset не работает. Что я здесь делаю не так? Будем признательны за ваши мысли. Спасибо.
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
print("scrollViewDidEndDecelerating: \(scrollView.contentOffset)")
if scrollView == imageScrollView {
if scrollView.contentOffset.x > scrollView.frame.width {
centerImageNumber = centerImageNumber == mainImageArray.count - 1 ? 0 : centerImageNumber + 1
}
if scrollView.contentOffset.x < scrollView.frame.width {
centerImageNumber = centerImageNumber == 0 ? mainImageArray.count - 1 : centerImageNumber - 1
}
updateScrollViewImages(centerImageNumber: centerImageNumber)
scrollView.setContentOffset(CGPoint(x: imageScrollView.frame.width, y: 0), animated: false)
pageControl.currentPage = centerImageNumber
}
}
override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
let frame: CGRect = imageScrollView.frame
imageScrollView.scrollRectToVisible(frame, animated: false)
imageScrollView.contentOffset.x = imageScrollView.frame.width
}