隐藏导航栏时的奇怪动画

时间:2017-03-30 03:45:24

标签: ios animation uinavigationcontroller uinavigationbar uipageviewcontroller

我通过嵌入在UINavigationController中的UIPageViewController子类(称为GalleryController)实现了一个照片库。点按时隐藏导航栏,但动画是奇数:

https://www.youtube.com/watch?v=9SLF3Nq3uNE

这是GalleryController中的代码:

  override var navigationItem: UINavigationItem {
    let item = super.navigationItem
    // Access super and add items to it.
    // Don't create a new UINavigationItem instance — that breaks the back button.

    let space = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
    space.width = touchSize / 2

    item.rightBarButtonItems = [
      UIBarButtonItem(title: "All Photos", style: .plain, target: self, action: #selector(showAllPhotos)),
      space,
      UIBarButtonItem(title: "Delete", style: .plain, target: self, action: #selector(deletePhoto))
    ]
    return item
  }

只有在引入页面视图控制器后才会出现此问题。

造成这种情况的原因,我该如何解决?

1 个答案:

答案 0 :(得分:1)

解决方案原来是在UIPageViewController子类的init中执行以下操作:

automaticallyAdjustsScrollViewInsets = false

我不知道它为什么会起作用,但确实如此。

我之前在子视图控制器(代表页面视图控制器的单个页面)中执行此操作,但这不起作用。