在 UIScrollView 中加载下一个图像视图

Posted

技术标签:

【中文标题】在 UIScrollView 中加载下一个图像视图【英文标题】:Loading next imageview in UIScrollView 【发布时间】:2013-02-14 11:20:42 【问题描述】:

我把uiscrollview和设置,

self.scrollViewHor.directionalLockEnabled = NO;

现在我已经启用了垂直和水平滚动。 我的问题是,当我水平滚动时,我想获得顶部图像 在下一帧,

前;当我从 1.a 垂直滚动到 1.b 然后水平滚动到右侧时,我想要 看到图像 2.a 而不是 2.b..

--------------   -------------- 
- Image 1.a  -   - Image 2.a  -
--------------   --------------
--------------   --------------
- Image 1.b  -   - Image 2.b  -
--------------   --------------
--------------   --------------
- Image 1.c  -   - Image 2.c  -
--------------   --------------

【问题讨论】:

水平滚动时只设置scrollView的contentOffset即可。 有什么方法可以找到滚动类型吗?水平还是垂直? 没有这个方法,但是你可以通过在 scrollViewDidScroll 委托方法中检查内容偏移来获得它。 【参考方案1】:

如果我没听错的话,...

在滚动视图中使用滚动视图。

背景中的大滚动视图不应高于滚动视图的屏幕/可见部分。它仅启用了水平滚动。 它包含两个(或更多 - 例如两个)滚动视图。每列一个。这些滚动视图仅启用了垂直滚动。

这样做,您应该开箱即用。实际上是免费的。

【讨论】:

实际上我试过了,但我需要在每一行上水平滚动,而不仅仅是在顶部。另外,如果我可以用一个滚动视图来做到这一点,那就更好了。 好吧,在这种情况下动态创建它。原理与“无限”滚动视图相同。假设一次只能看到一张图像。然后创建一个 3x3 图像大小的滚动视图。 (如果用户当前看到左上角,即您的 1.a,那么将只有 4 个)。居中的图像是始终可见的图像。并将邻居放在它旁边,即一个上,一个下,一个左,一个右(当然,除非没有)。 (续)当用户滚动时,获取滚动事件并重新对齐图像。假设用户从 1c 向右滚动。根据您的设计,2a 将是可见的。然后以这种方式重新对齐滚动视图,使居中的图像再次可见。你把 2a 放在中间。左边是 1c(或 1a,如果你愿意的话),右边是 3a,下面是 2b。让用户滚动到 2b 然后再次将滚动视图居中并将 2b 放在 midde 和 1a(orc) 和 3a 旁边,2a 上方和 2c 下方,等等。pp. 好的,我会试试的。谢谢你。如果我不能,我可以尝试像你之前说的那样用 2 个滚动视图来做到这一点。 嗯,我之前说的不止2个滚动视图。这是一个底层滚动视图,并且在其上的每一列都有一个。您的示例总共有 3 个。

以上是关于在 UIScrollView 中加载下一个图像视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Chrome 中加载下一页之前断开 websocket

在 UIScrollView Swift3 中加载 UIViewController

带有检测触摸的图像视图的 UIScrollView

使 UIScrollView 中的顶部图像在滚动视图边界上放大?

在 UIScrollView 中拍摄 CATiledLayer 支持的视图的图像快照

如何在 Swift 的 UIScrollView 中的视图之间添加填充? [关闭]