2

所以我的标签栏中有两个标签栏项目,每个项目都有一个带圆角的图像,圆角位于它们相遇的位置,如图所示。我正在尝试将标签栏的背景图像设置为透明而不是您可以看到的黑色,但到目前为止,我一直遇到一些不想透明的视图。这是我目前正在使用的:

[[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"]]];
    }
}

有什么建议么?如何找到该视图并使其透明?

标签栏也是 标签栏

4

1 回答 1

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文件中。

在 YourAppDelegate.mdidFinishLaunchingWithOptions方法中,添加以下两行(顶部):

[tabBarController setBackgroundImage:[UIImage imageNamed:@"CustomTabBarBackground.png"]];
[tabBarController.view setNeedsDisplay];

希望你能按照所说的去做。

有关这方面的更多信息:REFRENCE

编辑

AppDelegate.h通过编写将属性添加到您的:

@property(非原子,保留)IBOutlet UITabBarController *tabBarController;

也做档案@sythesize tabBarController;AppDelegate.m

并将其IBOutlet property与您对应TabBarController的 in连接XIB

于 2013-04-09T12:44:33.083 回答