所以我的tabbar中有两个tabbar项,每个都有一个带圆角的图像,圆角位于它们相遇的位置,如图所示。我试图将tabbar的背景图像设置为透明而不是你可以看到的那个黑色,但到目前为止,我一直碰到一些不想透明的视图。以下是我目前正在使用的内容:
[[UIView appearanceWhenContainedIn:[UITabBar class], nil] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"transparent"]]];
我也尝试了下一段代码,但没有成功。
[tabBar setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"transparent"]]];
for(UIView *v in tabBar.subviews)
{
if(v.class == NSClassFromString(@"_UITabBarBackgroundView")||v.class == NSClassFromString(@"UITabBarButton"))
{
[v setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"transparent"]]];
}
for(UIView *vc in v.subviews)
{
[vc setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"transparent"]]];
}
}
有什么建议吗?如何找到该视图并使其透明?
答案 0 :(得分:2)
您可以为此实现一个类别,扩展UITabBarController
,如:
<强>的UITabBarController + TransparentBackground.h 强>
@interface UITabBarController (TransparentBackground)
- (void) setBackgroundImage:(UIImage *)image;
@end
<强>的UITabBarController + TransparentBackground.m 强>
#import "UITabBarController+TransparentBackground.h"
@implementation UITabBarController (TransparentBackground)
- (void) setBackgroundImage:(UIImage *)image
{
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,480)];
imageView.backgroundColor = [UIColor colorWithPatternImage:image];
[self.view addSubview:imageView];
[self.view sendSubviewToBack:imageView];
[self.view setOpaque:NO];
[self.view setBackgroundColor:[UIColor clearColor]];
}
@end
在#import "UITabBarController+TransparentBackground.h"
文件中添加AppDelegate.m
。
在AppDelegate.m
的{{1}}方法中,添加以下两行(在顶部):
didFinishLaunchingWithOptions
希望你通过这样说来实现它。
有关详情:REFRENCE
通过以下方式将属性添加到[tabBarController setBackgroundImage:[UIImage imageNamed:@"CustomTabBarBackground.png"]];
[tabBarController.view setNeedsDisplay];
:
@property(nonatomic,retain)IBOutlet UITabBarController * tabBarController;
同样在AppDelegate.h
文件中@sythesize tabBarController;
。
并将此AppDelegate.m
与IBOutlet property
TabBarController
相关联