gpt4 book ai didi

ios - UIPageViewController:如何在 View Controller 之间设置 "negative"间距(具有滚动过渡样式)

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:46:46 27 4
gpt4 key购买 nike

我必须实现一个 View Controller (在 iPhone 上,仅纵向,全屏 View ),其中 View 的上部必须具有水平的、分页的滚动行为,可能是无限的。

我已经出于类似目的使用了 UIPageViewControllers,以利用数据源和委托(delegate)协议(protocol),这对管理内存和其他东西非常有帮助(在内存中只保留 3 个 View Controller ,提供委托(delegate)给在转换完成时准确处理操作等等):所以我认为在这种情况下,这个组件也是最佳选择。

但是我的问题来了。在我意识到的 View 中,我必须让用户明白他可以左右滑动以移动到另一个 View :页面控件不是一个好的选择,因为滚动可能是无限的,所以我想让左右 View Controller 的一小部分 View 可见。
类似的东西:

link to the image (对不起,我还不能在我的帖子中包含图片)

到目前为止,我还没有弄清楚如何实现这一点。在初始化期间的选项中,可以指定 UIPageViewControllerOptionSpineLocationKey 来设置(来自文档)“页面之间的间距,以磅为单位”:但这似乎只适用于正值,因此空间会增加,而它忽略可能减少空间的负值。

我希望有一个使用页面 View Controller 的解决方案,因为同时我需要在转换完成时刷新屏幕下方的表格 View ,而页面 Controller 的委托(delegate)方法非常适合这个目标。也许 Collection View 可以作为替代解决方案,但它更复杂,而且我不确定如何获得像我描述的那样刷新 TableView 的行为。

如果需要,我可以附上一些代码和原型(prototype)的屏幕截图

最佳答案

好的,我知道这是不可能的,为什么会这样。数据源方法在需要时加载当前 View Controller 之前和之后的 View Controller 。如我所愿,使这些 View Controller 的 View 始终可见,将需要数据源在当前 View Controller 之后(或之前,取决于滚动方向)加载多个 View Controller ,以便为平移操作做好准备(可能,在用户抬起手指结束动画之前,两个 View Controller “之后”或“之前”可能会在我想要的配置下变得可见),这不是 iPhone 上的 UIPageViewController 的意图,尤其是在纵向模式下。

所以实际上,要实现在任何时候在水平滚动组件中都可以看到多个 View ,唯一的方法是实现一个具有水平分页的 UIScrollview 并计算 contentSize 和相应的其他尺寸。

关于ios - UIPageViewController:如何在 View Controller 之间设置 "negative"间距(具有滚动过渡样式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21591322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com