5

我想让我的 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];

它仍然是这样的:

在此处输入图像描述

4

2 回答 2

23

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

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

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

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

希望它可以帮助你。

于 2013-04-27T03:47:25.843 回答
2

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

@interface TransparentToolbar : UIToolbar 
{
}

@implementation TransparentToolbar

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

@end
于 2013-04-26T20:53:26.300 回答