美文网首页
iOS的UINavigationBar去掉黑线的几种方法分析

iOS的UINavigationBar去掉黑线的几种方法分析

作者: 搬码小能手 | 来源:发表于2016-11-30 15:08 被阅读63次

    方案一:

    写在AppDelegate里面

    [[UINavigationBar appearance]  setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];

    [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];


    方案二:

    将UINavigationBar的clipsToBounds属性设成YES


    原理:

    Apple

    翻译:对于自定义导航栏背景图片,自定义背景图片必须使用"setBackgroundImage: forBarMetrics: "这个方法.如果你不自定义背景图片的话,系统会替你设置一张背景图片.

    意思就是,我们不设置背景图片,看到的其实是苹果已经给你设置了一张背景图片,有阴影,有黑线.(系统默认的,打开iPhone设置界面就是这样的).so,如果你想去掉黑线的话,就去掉苹果默认设置的图片吧!

    写在AppDelegate里面

    [[UINavigationBar appearance]  setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];

    [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];

    自己感受这段代码吧!


    扩展:

    相信大家有导航栏全透明的需求吧.

    调用这段代码吧,图片可以任意设置,只要forBarMetrics那里是UIBarMetricsCompact就可以了.

    [self.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav.jpg"] forBarMetrics:UIBarMetricsCompact];

    注意:调用这段代码想实现导航栏全透明必须先有

    [[UINavigationBar appearance]  setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];

    [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];

    这段代码.(原因是,你先把苹果的默认导航栏背景图片去掉).

    相关文章

      网友评论

          本文标题:iOS的UINavigationBar去掉黑线的几种方法分析

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