首页 文章

从UINavigationController - iOS动画下UINavigationBar的位置

提问于
浏览
0

我有一个UITabBarController,里面有3个UINavigationController . 我想要做的是,按下UINavigationController栏上的按钮,将栏一直向下放到UITabBarController栏的正上方 . 我这样做是为了让我可以以下拉式方式显示更多内容,这些内容将填充现在降低的UINavigationBar上方的区域,然后在向上移动时消失 . 所以,实质上,我想绕过UINavigationController的UINavigationBar . 我只需要在每个选项卡的相应UINavigationControllers的根视图控制器中使用UINavigationBar的这种滑动/向上行为 . 我试图在UINavigation控制器上重新定位条,就像这样......

@IBAction func moveBarDown(sender: AnyObject) {
     self.navigationController?.navigationBar.frame = CGRect(x: 100, y: 500, width: 100, height: 100)
  }  
  //note that I just used bogus values for demonstration purposes.

但是,我得到这样的东西......

enter image description here

正如您所看到的,导航栏一直延伸到顶部,即使它只有100的高度 . 这让我相信我不应该调整大小并在UINavigationController上移动UINavigationBar并移动它 . 因此,正在思考和研究获得相同功能的其他方法 .

1)假它:我想我可以通过编程方式插入一个相同但“假”的导航栏没有连接到UINavigationController,隐藏附加到导航控制器的真实UINavigationBar,然后根据需要移动假的 . 然后,在向上滑动时,我可以移动“假”导航栏,取消隐藏真实导航栏,然后删除“假”导航栏 .

2)实现我自己的导航控制器:我正在阅读我可以使用容器视图来实现我自己的导航控制器 . 我不熟悉做这样的事情,甚至不知道实现我自己的UINavigationController是否是一件好事 .

所以,我的问题是,如何在UINavigationController上实现移动UINavigationBar所需的功能?有什么办法让我完全失踪吗?任何意见,建议或建议都非常感谢 . 谢谢 .

1 回答

  • 2

    您的研究已经非常出色,您的结论也非常明确 . UINavigationController的导航栏不是你的移动或调整大小,动画与否 . 这不是你的导航栏,期间 . 如果您真的想要一个以这种方式运行的视图控制器,请编写您自己的父视图控制器(正如您非常合理地建议的那样) .

相关问题