gpt4 book ai didi

ios - 如何在水平 UIPageViewController 中实现垂直 UIPageViewController

转载 作者:搜寻专家 更新时间:2023-10-31 19:38:37 28 4
gpt4 key购买 nike

enter image description here

我想调整我的 UIPageViewController 以像图像中那样工作,目前 1b 可以去 2a 等。我需要什么像图片中那样锁定方向?我忘记了什么还是我使用了错误的逻辑。任何提示都会有很大帮助!

注意垂直的UIPageViewController在水平的UIPageViewController

里面

水平UIPageViewController代码

class MyPageViewController: UIPageViewController , UIPageViewControllerDataSource, UIPageViewControllerDelegate {

var pages = [UIViewController]()

override func viewDidLoad() {
super.viewDidLoad()

self.delegate = self
self.dataSource = self

let page1: UIViewController! = storyboard?.instantiateViewControllerWithIdentifier("page1")
let page2: UIViewController! = storyboard?.instantiateViewControllerWithIdentifier("page2")
let page3: UIViewController! = storyboard?.instantiateViewControllerWithIdentifier("page3")


pages.append(page1)
pages.append(page2)
pages.append(page3)


setViewControllers([page2], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil)
}

func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {


let currentIndex = pages.indexOf(viewController)!


let previousIndex = abs((currentIndex - 1) % pages.count)


if (previousIndex > 0)
{
return nil
}



return pages[previousIndex]
}

func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
let currentIndex = pages.indexOf(viewController)!
let nextIndex = abs((currentIndex + 1) % pages.count)


if (nextIndex < 1)

{
return nil
}

return pages[nextIndex]

}

垂直UIPageViewController代码

class upAndDownViewController: UIPageViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate {

var pages = [UIViewController]()

override func viewDidLoad() {
super.viewDidLoad()

self.delegate = self
self.dataSource = self

let midPage: UIViewController! = storyboard?.instantiateViewControllerWithIdentifier("midPage")
let topPage: UIViewController! = storyboard?.instantiateViewControllerWithIdentifier("topPage")



pages.append(midPage)
pages.append(topPage)



setViewControllers([midPage], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil)




}

func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {


let currentIndex = pages.indexOf(viewController)!
let nextIndex = abs((currentIndex + 1) % pages.count)


if (nextIndex < 1)
{
return nil
}

return pages[nextIndex]
}

func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {

let currentIndex = pages.indexOf(viewController)!


let previousIndex = abs((currentIndex - 1) % pages.count)


if (previousIndex > 0)
{
return nil
}



return pages[previousIndex]


}

最佳答案

我将水平方向的 UIPageViewController 放在垂直方向的 UIPageViewController 中。这修复了它,但由于某些原因,在 TOP 垂直 UIPageViewController 中打开的其他 ViewControllers 能够向下翻页,我会深入研究并可能修复它。

关于ios - 如何在水平 UIPageViewController 中实现垂直 UIPageViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766730/

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