加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 17:24:23 所属栏目:百科 来源:网络整理
导读:我想调整我的UIPageViewController工作就像在图像中一样,目前1b可以去2a等.我需要做什么来锁定图像中的方向?我忘了什么,或者我使用了错误的逻辑.任何小费都会有所帮助! 请注意,垂直UIPageViewController位于水平UIPageViewController内 水平UIPageViewCont

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,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],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能够向下翻页,我会更多地了解它并可能修复它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读