setNavigationBar半透明推送视图

时间:2015-11-03 16:54:31

标签: ios objective-c uinavigationbar

我的视图中有一个透明的UINavigationBar和一个UITableView,大约低于10px。有一个UIImageView在背景中有一个很酷的多边形图像,我正在以视差方式为视图过渡制作动画。

以下是透明导航栏的代码:

self.navigationController.navigationBar.shadowImage = [UIImage new];
self.navigationController.navigationBar.translucent = YES;
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];

我根本没有在这个项目中使用故事板

我右下方还有一个浮动动作按钮。我添加到UILabel的导航栏标题titleView会在点击右侧导航按钮时换成UITextField搜索功能。发生这种情况时,我正在设置

self.navigationController.navigationBar.translucent = YES;

这一切都很有效,除了通过设置translucent = NO视图将所有内容按向导栏的高度向下推。

enter image description here Search Mode

我可以将一些框架更改混合起来以弥补这一点,但我想知道是否有更多标准练习解决方案。

1 个答案:

答案 0 :(得分:11)

您要设置的属性为extendedLayoutIncludesOpaqueBars,如果此属性设置为YES,则您的视图将布局相同,就像导航栏是半透明的一样。

您提到您没有使用故事板,但是对于其他人来说,可以通过勾选标题为“Under Opaque Bars”的复选框在“Extend Edges”部分的视图控制器的Attributes Inspector中设置。