Ios 仅在UIScrollView内的正确位置加载可见内容

Ios 仅在UIScrollView内的正确位置加载可见内容,ios,swift,uiscrollview,uiimage,Ios,Swift,Uiscrollview,Uiimage,我有一个UIScrollView,我想在其中添加大量的子视图。每幅图片为256x256像素。ScrollView的ContentSize是8.192像素,因此这将是32x32个图像。我只想加载UIImages/创建我当前看到的UIImagesView。我可能必须使用scrollViewDidScroll并通过contentOffset确定该图像的正确位置。 这些映像位于服务器上,我异步加载它们。文件夹结构为“Images/Row/Column/Row_Column.jpg”,其中的行和列将替换为

我有一个UIScrollView,我想在其中添加大量的子视图。每幅图片为256x256像素。ScrollView的ContentSize是8.192像素,因此这将是32x32个图像。我只想加载UIImages/创建我当前看到的UIImagesView。我可能必须使用scrollViewDidScroll并通过contentOffset确定该图像的正确位置。 这些映像位于服务器上,我异步加载它们。文件夹结构为“Images/Row/Column/Row_Column.jpg”,其中的行和列将替换为实际数字,例如“Images/4/2/4_2.jpg”

我想坚持使用UIScrollView,因为它比UICollectionView提供了更多的可能性


我希望您能为我指引正确的方向。

我认为您可能希望看到的方向是实现一个
UICollectionView
,它带有一个
UICollectionViewFlowLayout
,可以响应从收缩到缩放的手势。这是最难的部分。然后,简单的部分是实现数据源,
UICollectionView
用于延迟加载其单元格(图像)

我没有看过这段视频,但谷歌的快速搜索让我找到了它:


我认为您可能希望看到的方向是实现一个
UICollectionView
,它带有一个
UICollectionViewFlowLayout
,可以响应从收缩到缩放的手势。这是最难的部分。然后,简单的部分是实现数据源,
UICollectionView
用于延迟加载其单元格(图像)

我没有看过这段视频,但谷歌的快速搜索让我找到了它:


我最终为我的用例编写了一个完整的自定义框架,它只缓存和加载我需要的图像

我没有像josefdlange所设想的那样使用UICollectionView


感谢您的帮助。

我最终为我的用例编写了一个完整的自定义框架,它只缓存和加载我需要的图像

我没有像josefdlange所设想的那样使用UICollectionView


谢谢你的帮助。

UICollectionView
+应该可以实现你想要的。我需要缩放,所以没有选项可以支持缩放
UICollectionView
+应该可以实现你想要的。我需要缩放,因此,没有任何选项认为
UICollectionView
可以支持缩放,如果您希望它更像一堵图片墙,您可以放大或缩小,那么它可能不是最好的解决方案。您可能会考虑
UICollectionView
UITableView
实现的模式——数据源和委托——来找出一种方法,使用
scrollviewdicscroll
惰性地加载图像视图。问题是,我想添加更多功能,如平移、旋转、缩放和滚动。本质上,这将是一张虚构的地图。使用导航功能,请查看我的评论并查看
UITableViewDelegate
/
UITableViewDataSource
的设计——它们遵循的模式可能就是您想要开始的地方。表视图是scrollview的一个子类,本质上是观察滚动中的变化,以确定它应该向其数据源请求哪些视图,并在内容视图中绘制这些视图。然后,如果您希望它更像一堵图片墙,那么您可以放大或缩小它,这可能不是最好的解决方案。您可能会考虑
UICollectionView
UITableView
实现的模式——数据源和委托——来找出一种方法,使用
scrollviewdicscroll
惰性地加载图像视图。问题是,我想添加更多功能,如平移、旋转、缩放和滚动。本质上,这将是一张虚构的地图。使用导航功能,请查看我的评论并查看
UITableViewDelegate
/
UITableViewDataSource
的设计——它们遵循的模式可能就是您想要开始的地方。表视图是scrollview的一个子类,本质上是观察滚动中的变化,以确定它应该向其数据源请求哪些视图,以及在内容视图中绘制哪些视图。