如何使导航栏像 iPhone 中的照片应用一样透明并淡出

Posted

技术标签:

【中文标题】如何使导航栏像 iPhone 中的照片应用一样透明并淡出【英文标题】:How to make a Navigation bar transparent and fade out like in the photo app in the iPhone 【发布时间】:2010-06-23 22:30:14 【问题描述】:

我是 iPhone 编程的新手...有人可以帮帮我吗..

我想在 iPhone 上开发一个类似照片应用程序的应用程序..

如何使导航栏和工具栏像 iPhone 中的照片应用一样透明和淡出

谢谢你..

【问题讨论】:

【参考方案1】:

UINavigationBar 继承自UIView,因此您可以使用UIView 的动画方法通过将alpha 属性设置为0 来淡出它。这应该可以:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[navigationBar setAlpha:0.0];
[UIView commitAnimations];

【讨论】:

【参考方案2】:

由于我是一个使用块的人,所以我使用这个小sn-p。

[UIView animateWithDuration:0.5 animations:^
    [navigationBar setAlpha:0.0];
];

对我来说感觉更好,但你应该只在你习惯了阻塞并且你正在使用 ios 4.0 或更高版本时才应该这样做。

【讨论】:

【参考方案3】:

要使栏透明,请使用setBarStyle:UIBarStyleBlackTranslucent

要隐藏带有淡入淡出动画的栏,请使用发布的代码 sn-p Macatomy。

【讨论】:

【参考方案4】:

根据 Apple 规范,您不应更改导航栏的 frameboundsalpha 值。

要隐藏(或显示)导航栏,您可以更改navigationBarHidden 属性或调用setNavigationBarHidden:animated 方法。

【讨论】:

不幸的是,使用-[UINavigationController setNavigationBarHidden:animated:]总是执行滑出效果而不是OP要求的淡出效果。

以上是关于如何使导航栏像 iPhone 中的照片应用一样透明并淡出的主要内容,如果未能解决你的问题,请参考以下文章

使 UINavigationBar 半透明

Android 如何在 Nexus 中使状态和工具栏透明

如何让 Flutter 应用在​​ android 导航栏后面绘制并使导航栏完全透明?

主/详细故事板项目中的 IOS 导航栏在 ipad 上是透明的,但在 iphone 上不透明

iPad 和 iPhone 中导航按钮、分段按钮的 50% 透明背景

如何在 iphone 中使用 avFoundation 像 Instagram 应用一样拍摄方形照片?