UIScrollView 和 UIImage 在其中启用了分页

Posted

技术标签:

【中文标题】UIScrollView 和 UIImage 在其中启用了分页【英文标题】:UIScrollView and UIImage in it with paging enabled 【发布时间】:2010-04-18 12:02:16 【问题描述】:

我需要在 UIScrollView 上显示 10 - 1000 张图像。分页已启用。所以scrollview的每一页都是一个image,就是一个uiimage。我可以将 10 个图像加载到 10 个保留在内存中的 uiimages,但是对于 1000 个图像,我在 iPhone 或 iPad 上会遇到问题。我正在尝试在滚动时卸载然后加载图像。我每次显示 3 个图像。当前页面图像,以及 -1 和 +1 页面。当我滚动时,我卸载图像,然后加载下一个。使用这种方法,我有两个问题。滚动很慢,如果我滚动得很快,图像就不会出现。也许这些问题有什么好的解决方案?能给我推荐一个吗?

【问题讨论】:

【参考方案1】:

您应该使用包含大型自定义单元格的表格,每个单元格都包含一个图像视图。这样,您在任何时候都不会拥有超过几个图像视图。该表将管理换出应该对您可见的图像,因此您不必自己编写所有代码。

但是,即使使用表格,如果您尝试显示 1,000 个大(比如屏幕大小的 20% 以上)图像,性能也会很差。我没有在 iPad 上尝试过,但 iPhone 没有足够的能力和内存来快速处理这么多图像。

相反,您应该复制照片库的分层系统。显示缩略图,然后显示完整图像的详细视图或一次仅显示一个图像的左右滚动详细视图。这具有作为用户已经完全熟悉的界面的额外优势。

【讨论】:

还有一个问题。有没有办法在水平模式下使用 tableview? 所以,在tableView中我无法启用分页...但是我制作了一个没有垂直滚动的水平滚动的tableview,但我需要分页...有人知道吗? 表格不分页。不确定你到底需要什么。我认为您正在尝试将桌面界面塞入移动设备中。你不能这样做并期望有好的表现。您必须在低功耗移动硬件的限制范围内工作,并相应地调整您的设计。 我想做一个类似书本的界面,我看到一些很好的书本界面,在页面滚动页面时非常快。我的界面有点卡。我只是想加快页面滚动速度。 表格视图应该是垂直的。但是您可以查看 EasyTableView 项目。它无需编写大量代码即可启用水平 tableViews。该项目的代码有据可查,写得很好:github.com/alekseyn/EasyTableView【参考方案2】:

也许three20 项目中的 TTPhotoViewController 会很有用。

【讨论】:

以上是关于UIScrollView 和 UIImage 在其中启用了分页的主要内容,如果未能解决你的问题,请参考以下文章

在 UIScrollView 中获取 UIImage 可见部分的正确坐标

如何在uiscrollview中双击缩放和两个手指缩放uiimage

如何缩放 UIImage 以适应 UIScrollView 的尺寸?

将 UIImage 定位在 UIScrollView 的中心进行缩放

如何裁剪 UIScrollView 中显示的 UIImageView 部分并将其保存到 UIImage 变量?

在 UIImage 中转换 UIScrollView 的内容