如何使用重用图像视图创建三个图像视图以显示n个图像?

时间:2016-07-06 00:49:24

标签: ios swift uiscrollview scrollview uipagecontrol

使用scrollview实现Pagecontrol以在屏幕上显示多个图像。当用户向左或向右滑动用户可以看到下一个/上一个图像时。下面是我根据图像数量创建的图像视图。这似乎不是一种优化的方式。无论如何我可以使用2或3个图像视图创建它并重复使用它们。因为,用例一次只显示一个图像。

for index in 0..<pageControl.numberOfPages {
        fram.origin.x = scrollView.bounds.size.width * CGFloat(index)
        fram.size.width = scrollView.bounds.size.width
        fram.size.height = scrollView.frame.size.height
        imageView = UIImageView(frame: fram)
        imageView.setImage(images![index])
        scrollView.addSubview(imageView)
    }

func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
    let pageNumber = round(scrollView.contentOffset.x / scrollView.bounds.size.width)
    pageControl.currentPage = Int(pageNumber)
}

请不要使用集合视图,请帮助我如何制作这种优化方式。

1 个答案:

答案 0 :(得分:0)

听起来你实际上最终会重新实现集合视图。您不想使用UICollectionView的任何特殊原因?

请记住,它免费为您提供错误修复 - 由Apple工程师提供。

更新如果你决定这样做,请查看2014年关于复合数据源的WWDC视频,它说明了如何避免使单元格成为数据源,而是使用表格视图进行组合而是https://developer.apple.com/videos/play/wwdc2014/232/

更新2 基本上您想要收听scrollViewDidScroll:的{​​{1}}并检查哪些子视图位于UIScrollView.delegate的可见区域之外,将其添加到可以重用而不是销毁的视图池,并在需要显示新视图时重新配置。这是表格或集合视图的工作方式(根据我的理解)