- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个 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/
我是一名优秀的程序员,十分优秀!