我编写了以下代码,以使我的工具栏透明。
[mtoolbar setBackgroundColor:[UIColor clearColor]];
如何使UIToolbar
透明?
答案 0 :(得分:11)
您可以将属性translucent
设置为YES
,看看是否有帮助。
答案 1 :(得分:11)
[self.toolbar setBackgroundImage:[UIImage new]
forToolbarPosition:UIToolbarPositionAny
barMetrics:UIBarMetricsDefault];
[self.toolbar setBackgroundColor:[UIColor clearColor]];
答案 2 :(得分:5)
将属性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];
答案 3 :(得分:4)
检查以下代码
[myToolbar setBarStyle:UIBarStyleBlack];
[myToolbar setTranslucent:YES];
取自
@BrandonBodnár已在以下SO帖子中回答。
Couldn't UIToolBar be transparent?
你也可以使用不同的方法
答案 4 :(得分:2)
for (UIView * sv in [toolBar subviews])
{
[sv removeFromSuperview];
}
;)任何iOs
答案 5 :(得分:1)
以下适用于iOS 5(和iOS 6 beta 4,虽然在那里仍然可以看到轻微的顶部阴影)。
请注意: 使UIToolbar或UINavigationBar透明化很少是个好主意,以这种方式修改Apple的UIKit元素肯定会迟早破解。
<强> TransparentToolbar.h 强>
#import <UIKit/UIKit.h>
@interface TransparentToolbar : UIToolbar
@end
<强> TransparentToolbar.m 强>
#import "TransparentToolbar.h"
@implementation TransparentToolbar
-(void)insertSubview:(UIView *)view atIndex:(NSInteger)index
{
// This method is called with a view of class "UINavigationBarBackground" or "_UIToolbarBackground", respectively. It would be possible to check for this with NSStringFromClass([view class]) to be completely sure that we're skipping the right view.
if (index != 0)
{
[super insertSubview:view atIndex:index];
}
else
{
// insert your custom background view, if you want to
}
}
@end
编辑:在iOS 5+中,也可以简单地设置backgroundImage(可以是透明的)。这当然是“更清洁”的解决方案,但不如自定义UIView
灵活。
[someToolbar setBackgroundImage:[UIImage imageNamed:@"clear"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
答案 6 :(得分:1)
这适用于iOS 6和7:
UIGraphicsBeginImageContextWithOptions(CGSizeMake(1, 1), NO, 0.0);
UIImage *blank = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[self.toolBar setBackgroundImage:blank forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];