我正在创建一个iPhone flashcard应用程序,用于研究各种术语。目前,我正在使用UIPageViewController来显示每个连续的卡(视图控制器)。当用户点击一张卡片时,它会翻转并向后显示它们,当它们向左或向右滑动时,它们可以在卡片之间滚动。 Current App interface
到目前为止,这种方法效果很好,但我希望能够在横向方向上显示卡片的正面和背面。通常,使用UIPageViewControllerDelegate的方法func pageViewController(_ pageViewController: UIPageViewController, spineLocationFor orientation: UIInterfaceOrientation)
可以轻松完成,如果方向是水平的,则返回.mid
。但是,由于我没有使用.pageCurl
而.scroll
作为我的pageViewController的transitionStyle,因此永远不会调用此方法。 Apple Documentation不使用.pageCurl
时也无法手动设置。 Apple的文档说:
仅当转换样式为pageCurl时,脊椎位置才有效。 如果转换样式是pageCurl,则此属性的默认值为min;否则,默认值为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 })
}
但是这会返回错误:"'提供的视图控制器数量(2)与所请求的转换所需的数量(1)不匹配'&# 34;
所以基本上我正在寻找另一种解决方案来并排显示两个视图控制器,同时仍然保持卡之间水平滚动过渡的功能。
答案 0 :(得分:0)
所以基本上我正在寻找另一种解决方案来并排显示两个视图控制器,同时仍保持在卡之间水平滚动的功能
你有两个选择。
UIPageViewController中的“页面”本身可以是一个自定义父(容器)视图控制器,它的两个子视图并排显示。
您可以完全放弃使用UIPageViewController,并使用水平分页滚动视图实现您自己的界面(这就是我们在页面视图控制器存在之前所做的事情)。