如何使UIToolbar有一个清晰的背景?(How to make UIToolbar have a

2019-07-31 03:23发布

我有一个有白色色调,与栏按钮项UIToolbar,其次是一些灵活的空间,紧接着又栏按钮项目。 我想使工具栏完全清楚,这样我可以看到什么是灵活的空间下(我不在乎看到的是背后的按钮)。 有没有办法做到这一点? 我曾尝试设置工具栏半透明,但是这并不能使它完全清楚。

Answer 1:

[self.toolbar setBackgroundImage:[UIImage new]
              forToolbarPosition:UIToolbarPositionAny
                      barMetrics:UIBarMetricsDefault];

 [self.toolbar setBackgroundColor:[UIColor clearColor]];


Answer 2:

子类UIToolbar,并实现以下方法:

- (void)drawRect:(CGRect)rect 
{
  [[UIColor colorWithWhite:0 alpha:0.6f] set]; // or clearColor etc
  CGContextFillRect(UIGraphicsGetCurrentContext(), rect);
}

查看更多详情点击这里



Answer 3:

设置toolbarStyle -1这样

 tools.barStyle = -1; // clear background


Answer 4:

哈克,对不起,但我发现的唯一途径,到目前为止能可靠地工作在两个的iOS 7和iOS 6是做到这一点:

[[toolbar.subviews objectAtIndex:0] removeFromSuperview];


Answer 5:

如果你想有一个全球性的解决方案充分利用的UIAppearance代理:

UIToolbar *toolbarAppearance = [UIToolbar appearance]; [toolbarAppearance setBackgroundImage:[[UIImage alloc] init] forToolbarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];



Answer 6:

它可以在不iOS的子类6+的属性设置来完成translucent到`YES。

下面这不会在iOS 5中工作。 下面是它可以没有子工具栏来完成:

const float colorMask[6] = {222, 255, 222, 255, 222, 255};
UIImage *img = [[UIImage alloc] init];
UIImage *maskedImage = [UIImage imageWithCGImage: CGImageCreateWithMaskingColors(img.CGImage, colorMask)];

[self.toolbar setBackgroundImage:maskedImage forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];


Answer 7:

雨燕3.0版本接受的答案的:

   self.toolbar.isTranslucent = true
    self.toolbar.setBackgroundImage(UIImage(),
                               forToolbarPosition: UIBarPosition.any,
                               barMetrics: UIBarMetrics.default)

    self.toolbar.setShadowImage(UIImage(), forToolbarPosition: UIBarPosition.any)


文章来源: How to make UIToolbar have a Clear Background?