iOS导航栏NavigationBar设置透明,以及添加变色的动画,类似知乎日报的导航栏。
知乎日报
透明
只需设置NavigationBar的背景图片为一张空图片即可
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsCompact];
NavigationBar下边有一个ShadowImage
,也可以通过设置空的UIImage设置透明。
[self.navigationController.navigationBar setShadowImage:[UIImage new]];
变色动画
在NavigationBar下插入一个view,执行动画改变这个view的透明度即可。
CGRect frame = self.navigationController.navigationBar.frame;
alphaView = [[UIView alloc] initWithFrame:CGRectMake(0, -20, frame.size.width, frame.size.height+20)];
alphaView.backgroundColor = [UIColor blueColor];
alphaView.userInteractionEnabled = NO;
[self.navigationController.navigationBar insertSubview: alphaView atIndex:0];
就这么简单!
网友评论
会有默认的_UIBarBackground为白色挡住,必须设置为透明或者隐藏
可以参考 iOS导航栏全透明 遇到的UIBarBackground问题
https://www.jianshu.com/p/5d0ed9dae24d