TOV*_*VVV 21 shadow uinavigationbar ios7
我试图将导航栏放在另一个导航栏下方,使其看起来像一个高大的导航栏.但是在iOS 7中,UINavigationBar现在在其顶部和底部都有内部阴影.我真的需要删除它.但我没有找到任何解决方案.它看起来像预渲染的阴影,但实际上它在视图出现后大约0.4秒内缓慢出现.
我几乎尝试了所有东西,但阴影依旧存在.我用以下代码删除了栏下方的水平线:
for (UIView *view in [[[self.navigationController.navigationBar subviews] objectAtIndex:0] subviews]) {
if ([view isKindOfClass:[UIImageView class]]) view.hidden = YES;
}
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何去除阴影.非常感谢!
我试过这个:
[self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];
Run Code Online (Sandbox Code Playgroud)
但该代码甚至不会删除栏下方的水平线(此方法需要自定义背景图像).我用Xcode 5.0(5A11365x)
Thy*_*raz 56
导航栏底部的"水平"线就是shadowImage.可以通过应用空来简单地删除它UIImage.根据文档,您还必须设置自定义背景图像:
- (void)viewDidLoad
{
[super viewDidLoad];
// Set the background and shadow image to get rid of the line.
[self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [[UIImage alloc] init];
}
Run Code Online (Sandbox Code Playgroud)
Ram*_*ino 21
我真的不应该像CaptJak所指出的那样,但是对于任何被困的人来说:
for (UIView *view in self.navigationController.navigationBar.subviews) {
for (UIView *view2 in view.subviews) {
if ([view2 isKindOfClass:[UIImageView class]]) {
[view2 removeFromSuperview];
}
}
}
Run Code Online (Sandbox Code Playgroud)

小智 9
在Swift中(在iOS9上测试)
self.navigationController!.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
self.navigationController!.navigationBar.shadowImage = UIImage()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19837 次 |
| 最近记录: |