代码之家  ›  专栏  ›  技术社区  ›  Peter Pik

嵌入containerView中的PageViewController显示先前视图的小边距

  •  1
  • Peter Pik  · 技术社区  · 9 年前

    我创建了一个带有containerView的viewController,其中嵌入了pageViewController。在这个页面控制器中,我在里面添加了3个视图控制器。这看起来很好,但是每次我滑动到下一个视图时,它似乎会在前一个视图的一侧显示一点空白。这是什么原因造成的?

    enter image description here

    查看DidLoad

        if let firstViewController = orderedViewControllers.first {
            self.pageViewController?.setViewControllers([firstViewController],
                direction: .Forward,
                animated: true,
                completion: nil)
        }
    

    新视图控制器

    func newViewController(view: String) -> UIViewController {
        return UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier(view)
    }
    

    页面控制器委托

    extension CameraViewController: UIPageViewControllerDataSource {
        func pageViewController(pageViewController: UIPageViewController,
            viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
                guard let viewControllerIndex = orderedViewControllers.indexOf(viewController) else {
                    return nil
                }
    
                let previousIndex = viewControllerIndex - 1
    
                // User is on the first view controller and swiped left to loop to
                // the last view controller.
                guard previousIndex >= 0 else {
                    return orderedViewControllers.last
                }
    
                guard orderedViewControllers.count > previousIndex else {
                    return nil
                }
    
                return orderedViewControllers[previousIndex]
        }
    
        func pageViewController(pageViewController: UIPageViewController,
            viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
                guard let viewControllerIndex = orderedViewControllers.indexOf(viewController) else {
                    return nil
                }
    
                let nextIndex = viewControllerIndex + 1
                let orderedViewControllersCount = orderedViewControllers.count
    
                // User is on the last view controller and swiped right to loop to
                // the first view controller.
                guard orderedViewControllersCount != nextIndex else {
                    return orderedViewControllers.first
                }
    
                guard orderedViewControllersCount > nextIndex else {
                    return nil
                }
    
                return orderedViewControllers[nextIndex]
        }
    }
    
    1 回复  |  直到 9 年前
        1
  •  1
  •   kelin    9 年前

    你可能会说 页面间距 。您可以在情节提要中编辑它。选择页面视图控制器,然后打开属性检查器。将有相应的部分:

    enter image description here