我正在尝试从导航栏中移除阴影但未获得成功(iOS7)。
使用下面的代码,
方法1
[self.navigationController.navigationBar setBackgroundImage:image
forBarPosition:UIBarPositionAny
barMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[UIImage new]];
方法2
for (UIView *view in self.navigationController.navigationBar.subviews) {
for (UIView *view2 in view.subviews) {
if ([view2 isKindOfClass:[UIImageView class]]) {
[view2 removeFromSuperview];
}
}
}
方法3
[self.layer setMasksToBounds:YES];
方法4
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
方法5
[self.navigationController.navigationBar setBackgroundImage:image
forBarPosition:UIBarPositionAny
barMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[[UIImage imageNamed:@"transparentpx.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(1, 1, 1, 1)]];
他们都不适合我。 任何人都可以建议新方法..
答案 0 :(得分:1)
使用空图像并不适合我。
我不得不使用1x1像素透明图像作为阴影图像,以使其看起来不可见。
[self.navigationBar setShadowImage:[[UIImage imageNamed:@"navbar-shadow"] resizableImageWithCapInsets:UIEdgeInsetsMake(1, 1, 1, 1)]];
答案 1 :(得分:0)
你试过这个吗?
self.navigationController.navigationBar.layer.opacity = 0;
self.navigationController.navigationBar.layer.borderWidth = 0;
self.navigationController.navigationBar.layer.borderColor = [[UIColor clearColor] CGColor];