在iOS 7中删除UIToolbar发际线

fzw*_*zwo 29 ios7

在iOS 7中,Apple已经改为UIToolbar在其顶部显示1px的发际线.在某些情况下,这在视觉上会分散注意力,并且似乎没有任何公共API可以将其删除.

设置shadowImage不起作用.

我正在寻找一种以相对干净的方式去除发际线的方法,并保持普通的背景模糊.

cir*_*ies 83

如果设置youBar.clipsToBounds = YES,则发线会消失.

希望这有帮助.

[编辑]

对于navigationBar底部发际线,这里的解决方案/sf/answers/1272623131/也很有用.

  • 应该选择这个作为正确的答案.这对我也有用. (4认同)

小智 5

细线边框是工具栏的UIImageView子视图,您可以像这样隐藏它:

        for (UIView *subView in [self.toolbar subviews]) {
            if ([subView isKindOfClass:[UIImageView class]]) {
                // Hide the hairline border
                subView.hidden = YES;
            }
        }
Run Code Online (Sandbox Code Playgroud)

  • 像这样对内部实现细节做出假设总是一个坏主意。Apple 可以随时更改实施方式。 (2认同)

Thy*_*raz 5

这条线是它的shadowImage.可以通过应用空的UIImage简单地删除它. 根据文档,您还必须设置自定义背景图像:

- (void)viewDidLoad {
  [self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc]init] forBarMetrics:UIBarMetricsDefault];
  self.navigationController.navigationBar.shadowImage = [[UIImage alloc ]init];
}
Run Code Online (Sandbox Code Playgroud)

请注意:如果您需要设置自己的图像,则半透明将不起作用.