gpt4 book ai didi

ios - 使用transitionStyle .scroll时如何将UIPageViewControllerSpineLocation设置为.mid

转载 作者:行者123 更新时间:2023-11-30 12:10:34 28 4
gpt4 key购买 nike

我正在创建一个 iPhone 抽认卡应用程序,该应用程序将用于学习各种术语。目前,我正在使用 UIPageViewController 来显示每个连续的卡片( View Controller )。当用户点击卡片时,卡片会翻转并显示背面,当用户向左或向右滑动时,他们可以在卡片之间滚动。 Current App interface

到目前为止,效果很好,但我希望能够在横向时显示卡片的正面和背面。通常,通过使用 UIPageViewControllerDelegate 的方法 func pageViewController(_ pageViewController: UIPageViewController, spineLocationFor orientation: UIInterfaceOrientation) 可以很容易地做到这一点。并返回.mid如果方向是水平的。但是,由于我没有使用 .pageCurl但是.scroll作为我的pageViewController的transitionStyle,这个方法永远不会被调用。 Apple Documentation不使用.pageCurl时也无法手动设置。苹果的文档说:

A spine location is only valid if the transition style is pageCurl. If the transition style is pageCurl, the default value for this property is min; otherwise, the default is none.

我尝试添加一个在方向为横向时调用的方法:

func showBothSides(){
let currentViewController = self.pageViewController!.viewControllers![0] as! PracticePageDataVC
let viewControllers: [UIViewController] = [currentViewController, currentViewController]
self.pageViewController!.setViewControllers(viewControllers, direction: .forward, animated: true, completion: {done in })
}

但这会返回错误:“'提供的 View Controller 数量 (2) 与请求的转换所需的数量 (1) 不匹配'”

所以基本上我正在寻找一种替代解决方案来并排显示两个 View Controller ,同时仍然保持卡之间水平滚动过渡的功能。

最佳答案

So basically I am looking for an alternative solution to show two view controllers side by side while still maintained the functionality of scrolling horizontally between cards

你有两个选择。

  • UIPageViewController 中的“页面”本身可以是一个自定义父(容器) View Controller ,其两个 subview 并排显示。

  • 您可以完全放弃使用 UIPageViewController,并使用水平分页 ScrollView 实现您自己的界面(毕竟,这就是我们在页面 View Controller 存在之前所做的事情)。

关于ios - 使用transitionStyle .scroll时如何将UIPageViewControllerSpineLocation设置为.mid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46121418/

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