Vic*_*nin 11 uinavigationbar ios ios9
当您点击图像时,内置照片应用程序会淡入/淡出navigationBar.这种方式照片应用程序允许全屏查看.
它是如何做到的(淡化效果)?
据我所知navigationController?.navigationBar.alpha,不再适用(所以你不能用这种方式制作动画).
Vic*_*nin 11
分享我的所有发现.
投诉模式开启
坦率地说,我感到有点生气/喜欢假人,我不得不为实现Apple应用程序中存在的简单事物而度过美好的一天.
投诉模式关闭
首先,这里有一些背景.我正在使用由navigationController提供的navigationBar(vs只是在视图中手动删除的独立栏)
我找到了几种方法.我会提到所有这些(即使我没有成功使用它们)
1)使用navigationBar的alpha动画更改
UIView.animateWithDuration(0.1, animations: {
navigationController?.navigationBar.alpha = 0
}, completion: nil)
Run Code Online (Sandbox Code Playgroud)
@rmaddy在这里提到它对他有用.但是,我相信他有一个独立的栏(与由navigationController管理的栏).
我使用工具Reveal来检查UI层次结构并发现了几件事.- 有一个隐藏的导航栏(并且navigationController?.navigationBar正在引用它).所以你可以改变你的心灵快乐,但这些变化是不可见的.
然而,还有另一个导航栏.我假设它在navigationController的一些私有成员中引用(让我们称之为私有navigationBar).它是可见的,这是在视图顶部显示的内容.
2)使用setNavigationBarHidden:animated:
这是隐藏/显示导航栏的标准方法.它是动画不同的方式(它上下滑动).但是,如果它对你没问题,那就是这样,因为它简单而干净.
navigationController?.setNavigationBarHidden(true, animated: true)
Run Code Online (Sandbox Code Playgroud)
此外,您可以将其包装在UIView.beginAnimations,UIView.commitAnimations中,以便与其他一些东西一起制作动画(使其更流畅)
3)私人导航栏的alpha动画更改.
这对我有用:
let privateNavigationBar = self.superview?.superview?.superview?.superview?.superview?.superview?.subviews[1]
UIView.animateWithDuration(0.1, animations: {
privateNavigationBar.alpha = 0
}, completion: nil)
Run Code Online (Sandbox Code Playgroud)
我将通过层次结构获取包含私有navigationBar(该视图的第二个子视图)的视图.
但是,这种方法有许多缺点:
UINavigationBar来解决这个问题.4)使navigationBar透明并将背景图像设置为透明并更改其上的Alpha通道.
我找不到我读到这个想法的地方.有几个提到.
有苹果的示例应用程序展示了如何自定义导航栏,包括使其透明.
有趣的是,这个示例应用程序适用于我(导航栏是透明的).但是,当我在我的应用程序中尝试此代码时,它不起作用(我仍然没有弄清楚这是怎么回事).像往常一样有很多变量(可能是Info.plist中的东西,也是它们的子类NavigationController,也可能是视图层次结构中的东西)
5)添加独立的navigationBar
您可以隐藏由navigationController提供的栏.将自己添加到UIView,将其连接到@IBOutlet并在其上使用alpha动画(很可能是@rmaddy所指的).
我检查了,这是工作.
本教程使用此方法.
但是,它有一个缺点:
每次当我看到这样的代码(写在文章中)时,我都知道调整大小会有问题: CGRectMake(0, 0, CGRectGetWidth(self.view.bounds), 64.0)
您可以使用约束替换它.我走了这条路,但偶然发现了一些问题.
6)其他方法
我看到了另外两种方法.我不知道它们是否有用或有什么缺点:
其中一个在这个问题:如何通过淡入/淡出同时隐藏/显示状态栏和导航栏,如iOS 7中的照片应用程序?
这个答案:https://stackoverflow.com/a/18063898/422080
| 归档时间: |
|
| 查看次数: |
3720 次 |
| 最近记录: |