我正在开发项目,我必须添加水平滑动功能才能移动新故事。实际上我通过在uiwebview内容中添加java脚本来实现这一点。但问题是它突然改变(没有动画的意思)。
我想要的是iPhone中大多数文章阅读器应用程序使用的功能,即在慢慢滑动时,我们可以看到上一个故事和下一个故事。换句话说,如果我们从右向左水平滑动,那么新的webview将加载下一个故事,当我们来到屏幕的中心时,可以看到两个视图(前一个故事和下一个故事),当我们向左移动然后下一个故事完全加载。正如我们在滚动中看到的那样,如果向下和向上滚动,可以看到表格的单元格(上一页和下一页)。
请告诉我它的任何逻辑或任何代码。
答案 0 :(得分:3)
这是一个懒惰的装载案例。因此,在任何给定的时间点,我们只会在滚动视图中添加3个网页视图,称为上一个故事网页视图,当前故事网页视图和下一个故事网页视图。
最初,当前故事webview将加载当前故事(比如故事编号1)。因为,不能有故事编号0,我们之前的故事webview将是空的,并且将位于当前故事webview的左侧,对用户不可见。同样,我们的下一个故事webview将加载下一个故事(故事编号2),并将位于当前故事webview的右侧。
转到下一个案例:
假设,如果用户想要转到下一个故事,这对我们来说应该不是问题,因为我们已经将下一个故事加载到下一个故事webview中。但是,在我们进入下一个故事之后,它应该成为新的当前故事,当前的故事应该成为新的前一个故事。那先前的故事怎么样?
之前的故事webview在这里没用。之前的故事webview在这里变得毫无用处,明智的做法是将它作为新的下一个故事webview,加载下一个故事(故事编号3)并将其移动到新的当前故事webview的右侧。
如果用户继续转向下一个故事,则应重复此过程。
转移到以前的故事案例 这种情况完全与上述情况相反。在这种情况下,旧的下一个故事webview变得毫无用处,我们应该将它作为新的前一个故事webview,并使用适当的先前故事编号加载它。
对案件的良好模拟将是这样的。
P - >以前的webview,标记为1 C - >当前webview,标记为2 N - >;下一个webview,标记为标记3
初步案例:
P(0),C(1),N(2)
移动到下一个: OLD-P(0),NEW-P(1),NEW-C(2)
因为,OLD-P(0)没用,我们把它变为NEW-N(3)
因此,我们有P(1),C(2),N(3)
即。我们在下一个故事中加载了OLD-P,然后将它放在NEW-C之后。
<强>更新强>
重新排列故事webvies的步骤:
正如我们所讨论的,我们不必创建新的故事网页视图。我们只需要重新定位无用的故事webview,以及有用的故事webview。
所以,如果转到下一个故事:
之前的故事是免费/无用的。
将新故事的框架分配到新当前故事的右侧。
将下一个故事标记设置为当前故事标记,将当前故事标记设置为上一个故事标记,将无用的上一个故事标记设置为当前故事标记+ 1.
使用新的下一个故事加载上一个故事(即当前故事+ 1)
如果您已理解上述3个步骤,则可以编写移至上一个故事的步骤。他们正对着他们。