iOS设置navigationBar和tabBar为不透明

释放双眼,带上耳机,听听看~!

用Xcode新建工程的时候,会发现self.view.frame和屏幕的尺寸是一样的,这就使得添加到self.view上的子控件会发生问题。

  • 原因:iOS7.1以后,默认navigationBar是半透明的,使得self.vieworigin是从屏幕左上角开始的(就是(0,0))。
  • 方法:设置 navigationBar 为不透明
self.navigationController.navigationBar.translucent = NO;

这样self.vieworigin是从navigationBar下面开始的(就是(0,20+44))。也就是说self.view(0,0)位置,就是相对屏幕来说的点(0,20+44)

运行发现:navigationBar下面有条白色细线

其实这是navigationBar的阴影,默认是一个像素的白线。

[[UINavigationBar appearance] setShadowImage:[UIImage new]];

经过上面的修改后,发现白线都消失了,除了navigationBar下面接着searchBar的情况。又经过一番查找,发现是searchBar顶部有个叫hairline的线,改进了一下刚才的代码:

[[UINavigationBar appearance] setShadowImage:[UIImage imageWithColor:[UIColor colorWithHexString:@"4290cc"] size:CGSizeMake(320, 1)]];

同理,设置tabBar为不透明

_tabBarVC.tabBar.translucent = NO;

人已赞赏
iOS文章

iOS 如何加快编译速度

2019-12-31 6:17:48

iOS文章

iOS移除父视图的子视图

2019-12-31 9:53:30

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索