Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 全景图像的无止境或无限滚动_Ios_Swift - Fatal编程技术网

Ios 全景图像的无止境或无限滚动

Ios 全景图像的无止境或无限滚动,ios,swift,Ios,Swift,我想为具有全景图像的UIImageView(滚动视图的子视图)实现无限滚动。当用户通过手动滚动到达末尾时,相同的图像应该再次启动 一个全景图像示例:我创建了一个滚动视图,其中有一个水平堆叠视图。stackview将在用户滚动到最后时动态添加和删除视图。 诀窍是在添加或删除视图后重置contentOffset,这样用户将体验无缝的无限滚动 func scrollViewDidScroll(_ scrollView: UIScrollView) { if scrollView.content

我想为具有全景图像的UIImageView(滚动视图的子视图)实现无限滚动。当用户通过手动滚动到达末尾时,相同的图像应该再次启动


一个全景图像示例:

我创建了一个滚动视图,其中有一个水平堆叠视图。stackview将在用户滚动到最后时动态添加和删除视图。 诀窍是在添加或删除视图后重置
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
    }
}
func scrollViewDidScroll(scrollView:UIScrollView){
如果scrollView.contentOffset.x=(scrollView.contentSize.width-scrollView.frame.size.width)){
从StackView添加全景视图(位置:2)
从StackView中移除全景视图(位置:0)
scrollView.contentOffset.x=scrollView.contentOffset.x-UIScreen.main.bounds.height*比率
}
}

ratio
是全景图像的宽度和高度之间的比率。由于图像将占据设备的整个高度,因此其宽度将按比例计算

你的意思是360度视图不是360度而是水平方向上的线性无限(左滚动和右滚动)。看这个存储库可能对你有帮助,我已经试过了。此存储库不提供无休止的滚动,而是基于运动传感器滚动图像。只需添加图像的两个副本。每次用户滚动到任意一端时,将滚动位置调整回中间位置。我有图像,想从下向上移动,当图像完成时,重复该图像,该循环不断重复。我如何才能做到这一点?