Ios 使用UIScrollView显示CarouselImagesView
我有一个UIScrollView可以显示一组页面并具有“旋转木马”效果,我想要的是在用户完成拖动后捕捉到图像。我是否应该添加一些其他功能,如Ios 使用UIScrollView显示CarouselImagesView,ios,swift,uiscrollview,uiscrollviewdelegate,Ios,Swift,Uiscrollview,Uiscrollviewdelegate,我有一个UIScrollView可以显示一组页面并具有“旋转木马”效果,我想要的是在用户完成拖动后捕捉到图像。我是否应该添加一些其他功能,如ScrollViewDiEndDraging来观察用户的操作???多谢各位 代码 func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { timer?.invalidate() scrolled(scrollView: scrollView)
ScrollViewDiEndDraging
来观察用户的操作???多谢各位
代码
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
timer?.invalidate()
scrolled(scrollView: scrollView)
}
private func scrolled(scrollView: UIScrollView) {
guard let imageUrls = self.imageUrls else {
return
}
if imageUrls.count < 1 {
return
}
.
if abs(lastContentOffset - scrollView.contentOffset.x) < 50 {
return
}
if lastContentOffset > scrollView.contentOffset.x {
if currentPageIndex == 0 {
currentPageIndex = imageUrls.count - 1
} else {
currentPageIndex -= 1
}
} else {
if currentPageIndex < imageUrls.count - 1 {
currentPageIndex += 1
} else {
currentPageIndex = 0
}
}
layoutImages()
self.delegate?.didChangePage(currentPageIndex)
}
func-scrollView-didend减速(\uscrollview:UIScrollView){
计时器?.invalidate()
滚动(滚动视图:滚动视图)
}
私有函数已滚动(滚动视图:UIScrollView){
guard let imageUrls=self.imageUrls-else{
返回
}
如果imageUrls.count<1{
返回
}
.
如果abs(lastContentOffset-scrollView.contentOffset.x)<50{
返回
}
如果lastContentOffset>scrollView.contentOffset.x{
如果currentPageIndex==0{
currentPageIndex=imageUrls.count-1
}否则{
currentPageIndex-=1
}
}否则{
如果currentPageIndex
首先,从内存的角度来看,滚动视图是不可靠的,将来如果动态加载大量图像,您的应用程序可能会出现内存溢出的情况,并可能崩溃
更好地使用集合视图、堆栈视图或表视图等视图,以实现单元格的可重用性,还可以解决拖动问题。谢谢您的建议。我已经搜索了很多几乎可以用collection view完成的示例。@KPK-这并没有回答问题,所以应该是一个注释…请不要用“like Airbnb”提问。。。对于不使用该应用程序的人来说,这没有任何意义。试着更好地描述你的目标。你有一组图像吗?你想让他们可以滚动,每个图像都是滚动视图的宽度?您想在用户完成拖动后捕捉到图像吗?你想要一个“旋转木马”效果,滚动到图像列表的末尾后,会恢复到列表的开头?@DonMag这正是我想要的,谢谢你的建议我建议你搜索
旋转木马图像幻灯片swift
。。。大量结果,包括示例应用程序、教程、讨论等。对于堆栈溢出来说,您的问题有点过于宽泛。