将UIPageViewControllerSpineLocation设置为.mid我正在创建将用于研究各种术语的iPhone flashcard应用程序。目前,我正在使用UIPageViewController来显示每个连续的卡(视图控制器)。当用户点击一张卡片时,它将翻转并向后显示它们,当它们向左或向右滑动时,它们可以在卡片之间滚动。 Current App interface如何使用transitionStyle .scroll
到目前为止,这项工作很好,但我希望能够在横向显示卡的正面和背面。通常,使用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 })
}
但这返回错误:“'提供的视图控制器的数量(2)不符合要求的数量(1)所需的过渡'“
因此,基本上我正在寻找一种替代解决方案来并排显示两个视图控制器,同时仍然保持hor卡片之间的横向滚动转换。
谢谢!我害怕这个......但我想知道/希望有一个快速和简单的解决方案。感谢帮助! –
请注意,这些方法都不会给你某种神奇的半尺寸页面滚动。页面的大小是滚动视图的大小。 – matt