如何让 UIToolbar 的背景透明? [复制]

Posted

技术标签:

【中文标题】如何让 UIToolbar 的背景透明? [复制]【英文标题】:How to make UIToolbar's background transparent? [duplicate] 【发布时间】:2013-04-26 18:40:24 【问题描述】:

我想让我的 UIToolBar 具有透明背景(类似于 iBooks),但我无法设置 translucent 属性。

这是我的代码:

UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
    NSMutableArray *toolBarItems = [[NSMutableArray alloc] init];
    [toolBarItems addObject:[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil]];
    [toolBarItems addObject:[[UIBarButtonItem alloc] initWithTitle:@"Source" style:UIBarButtonItemStyleBordered target:nil action:nil]];
    [toolBarItems addObject:[[UIBarButtonItem alloc] initWithTitle:@"Aa" style:UIBarButtonItemStyleBordered target:nil action:nil]];
    [toolBarItems addObject:[[UIBarButtonItem alloc] initWithTitle:@"Rabbit" style:UIBarButtonItemStyleBordered target:nil action:nil]];
    toolBar.items = toolBarItems;
    toolBar.translucent = YES;
    [self.view addSubview:toolBar];

结果还是这样:

【问题讨论】:

我相信你需要设置一个透明的背景图片才能做到这一点。只需创建一个 1x1 像素的透明 png。 @doug Smithh 因为 uitoolbar 是 uiview 的子类,您可以使用它的 layer 属性通过更改 alpha 的值使其透明 看看:***.com/questions/2468831/… 【参考方案1】:

如果您希望工具栏为 透明:

[toolBar setBackgroundImage:[[UIImage alloc] init] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];

如果您希望工具栏为 半透明

[toolBar setBarStyle:UIBarStyleBlack];
toolBar.translucent = YES;

希望对你有所帮助。

【讨论】:

你能解释一下你用于透明的方法吗? Transparent 方法仍然在工具栏边框顶部显示一个细条,如何消除它? ios 7 的优雅解决方案 似乎在 iOS 7 中您必须拥有所有三行代码才能获得透明度。如果我设置 translucent = NO,似乎根本无法在工具栏中获得透明度 @Malloc: [工具栏 setShadowImage:[UIImage new]forToolbarPosition:UIToolbarPositionAny];【参考方案2】:

一种选择是继承 UIToolbar 并覆盖 draw 方法,按钮将继续正常绘制自己:

@interface TransparentToolbar : UIToolbar 



@implementation TransparentToolbar

// drawRect stub, toolbar items will still draw themselves
- (void)drawRect:(CGRect)rect

    return;


@end

【讨论】:

以上是关于如何让 UIToolbar 的背景透明? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

UIToolbar 具有半透明而不是黑色

具有背景颜色的 UIToolbar 在 iOS 10 中变为白色

如何在背景图像上添加叠加不透明度? [复制]

在 UIToolbar 内向上移动 UIBarButtonItems

你如何获得库存的 UIToolBar 图标?

为啥黑色半透明 UIToolbar 的顶部与黑色半透明 UISearchBar 不同,如何使它们看起来相同?