美文网首页
设置navigationBar和tabBar为不透明

设置navigationBar和tabBar为不透明

作者: 伯牙呀 | 来源:发表于2017-02-10 17:22 被阅读786次

    用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;
    

    相关文章

      网友评论

          本文标题:设置navigationBar和tabBar为不透明

          本文链接:https://www.haomeiwen.com/subject/wmzgittx.html