如何使导航栏像 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 规范,您不应更改导航栏的 frame
、bounds
或 alpha
值。
要隐藏(或显示)导航栏,您可以更改navigationBarHidden
属性或调用setNavigationBarHidden:animated
方法。
【讨论】:
不幸的是,使用-[UINavigationController setNavigationBarHidden:animated:]
总是执行滑出效果而不是OP要求的淡出效果。以上是关于如何使导航栏像 iPhone 中的照片应用一样透明并淡出的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Flutter 应用在 android 导航栏后面绘制并使导航栏完全透明?
主/详细故事板项目中的 IOS 导航栏在 ipad 上是透明的,但在 iphone 上不透明