gpt4 book ai didi

ios - 在 Swift 中使用 UIScrollView 无限循环滚动

转载 作者:搜寻专家 更新时间:2023-10-30 22:17:43 28 4
gpt4 key购买 nike

我正在尝试制作一个无限循环图片库应用程序。我通过设置一个 UIScrollView 并在其中插入了 UIImageView 来做到这一点。我可以加载 4 张图片并在它们之间滑动,但我遇到的问题是如何实现无限滚动,以便在最后一张图片之后,第一张图片出现在对面。

由于我是 Swift 的新手,我不知道如何处理这个问题,也不知道从哪里开始。对于如何解决此问题的任何建议、示例或链接,我将不胜感激。

提前致谢!

这是我的代码的和平:

class FirstViewController: UIViewController {

@IBOutlet weak var scrollView: UIScrollView!

override func viewDidLoad() {
super.viewDidLoad()

self.scrollView.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height)

let scrollViewWidth: CGFloat = self.scrollView.frame.width
let scrollViewHeight: CGFloat = self.scrollView.frame.height

let numPics: Int = 3

let imgOne = UIImageView()
let imgTwo = UIImageView()
let imgThree = UIImageView()
let imgFour = UIImageView()

var arrPics = [imgOne, imgTwo, imgThree, imgFour]
var arrSlide = ["slide1.png", "slide2.png", "slide3.png", "slide4.png"]

for i in 0...numPics {

arrPics[i] = UIImageView(frame: CGRectMake(0,scrollViewHeight * CGFloat(i),scrollViewWidth, scrollViewHeight))

arrPics[i].image = UIImage(named: arrSlide[i])

self.scrollView.addSubview(arrPics[i])

}

self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.width, self.scrollView.frame.height*4)

}

最佳答案

不要使用 ScrollView ,而是使用 TableView 或 Collection View 。

两个类(class)的代表都希望您提供细胞计数。然后给代表们一个疯狂数量的单元格,一个如此之多的数字以至于任何人都不可能滚动到最后。像 9999999 个单元格。对于此类类来说,这不是问题,因为在后台实现中,它们实际上不会创建如此多的单元格,而只会创建在屏幕上同时可见的最大单元格数。事实上,这些细胞是被重复使用的。因此,当单元格在底部脱落时,这些单元格将在顶部重新使用,反之亦然。最后一点是:将起点设置在如此高的数字中间,例如 5555555。如果您不打算像他们那样实现完整的图像回收算法,我认为这是最简单的解决方案。

关于ios - 在 Swift 中使用 UIScrollView 无限循环滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34457668/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com