我希望对具有全景图像的UIImageView (它是滚动视图的子视图)实现无限滚动。当用户通过手动滚动到达终点时,相同的图像应该重新开始。
全景图像示例:

发布于 2017-05-03 08:18:18
最后,我创建了一个滚动视图,其中有一个水平的堆栈视图。当用户滚动到最后时,堆栈视图将动态地添加和删除视图。诀窍是在添加或删除视图后重置contentOffset,这样用户将体验到无缝无限滚动。
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.x <= 0 {
addPanoramaViewFromStackView(atPosition: 0)
removePanoramaViewFromStackView(atPosition: 1)
scrollView.contentOffset.x = UIScreen.main.bounds.height * ratio
}
else if (scrollView.contentOffset.x >= (scrollView.contentSize.width - scrollView.frame.size.width)) {
addPanoramaViewFromStackView(atPosition: 2)
removePanoramaViewFromStackView(atPosition: 0)
scrollView.contentOffset.x = scrollView.contentOffset.x - UIScreen.main.bounds.height * ratio
}
}ratio是全景图像的宽度与高度之比。由于图像将占据整个设备的高度,它的宽度将按比例计算。
https://stackoverflow.com/questions/43680980
复制相似问题