如何在iOS中推动整个视图,包括导航栏和工具栏

4
我有 3 个视图通过导航控制器连接在一起。中间的视图 (#2) 有特殊的样式,即导航栏和工具栏完全是白色的,以融入白色背景。
当滑动到/从视图 2 时,导航和工具栏过渡是带动画效果的 (默认情况下也是如此),按钮和被推入/弹出的视图的样式会慢慢淡入,即导航栏和工具栏在过渡期间保持可见。
由于视图 2 的白色导航栏和工具栏,这最终看起来并不好。
相反,我想要实现每个视图被推入/弹出包括它们的导航栏和工具栏。换句话说,我希望导航栏和工具栏不再在过渡期间保留,而是与它们所属的视图一起滑入/滑出。
我附上了 2 个变体的截图。
最好放弃导航控制器,并为每个视图设置自己的导航栏和工具栏吗?还是可以轻松地为我的当前设置实现?
如果有人能指点我正确的方向,那就太好了。
这是 Apple Remote 应用程序显示的效果,我想要创建这种效果。 remote-app 这是 Apple Mail 应用程序显示的默认过渡效果。 mail-app

也许这可以帮到您 - http://www.emdentec.com/blog/2014/2/25/hacking-uinavigationbar - Pablo Pantaleon
3个回答

0

使用导航栏和工具栏创建所需屏幕的视图。

在操作中,使用视图动画将视图2带入或移除,并使用所需的动画效果。

[UIView animateWithDuration:0.2
 animations:^{set your fram(0,0,320,480/568) or (320,0,320,480/568)}
 completion:^(BOOL finished){ 
 }];

你可以将视图添加到keywindow中。

希望这能帮到你。


0
为什么不直接在目标视图控制器上使用hidesBottomBarWhenPushed属性呢?
        // hide the bottom tabbar when we push this view controller
        destinationViewController.hidesBottomBarWhenPushed = YES;

0

使用自定义转场动画来切换视图控制器会比对UIView进行动画效果更好,虽然你可以给UIView对象添加物理行为来使其更有趣。

苹果公司在自己的应用程序中使用交互式自定义转场(只需查找即可)。这里也有一篇关于此的好文章:

http://www.doubleencore.com/2013/09/ios-7-custom-transitions/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接