1、黑线的由来
Apple 为了方便开发者给用户设置导航栏的背景,默认给了导航栏一个图层,也就是ImageView,然后给这个ImageView 设置了shadowImage,这就导致了我们看到的导航栏有黑线。
2、如何去除
方法1:
既然是 shadowImage 那就可以先设置背景图片,然后设置shadowImage 就可以了
[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
方法2: 将UINavigationBar的clipsToBounds属性设成YES可以了
方法3:循环遍历一下UINavigationBar的所有子视图,发现有UIImageView类型的视图就remove掉,或者设成隐藏状态(hidden)。虽然也能达到想要的效果,这个方法不太聪明也太暴力了,不是很推荐。
时间: 2024-10-20 01:26:07