UITabBarController背景图片和适配

UITabBarController 修改背景

 

转载注明出处:http://hi.baidu.com/yunhuaikong/blog/item/086d43fb79fe82c1b58f3128.html

UITabBarController自己的数据有时候让人无言,如选中时的颜色tintcolor,它的背景等,虽然网络现在修改它的例子很多,但个人感觉都不是最好的办法。毕竟这样做代码量还是比较大的,如何用官方的api实现相应的功能呢?看看效果图:

现在一一说明修改方式:

一、修改背景图片:


素材如下:

 

二、修改每一个tabbar选中时的颜色,默认为蓝色。此处修改为自定义的颜色。

 

三、去掉选中时的聚焦高亮颜色。可以对比着看看。这里不给截图。

素材:

宽度为320/tabbar的个数,用背景色。如果需要其他的效果,自己换一个就行了。

 


搜集的方法二:转载自:http://blog.csdn.net/tianyitianyi1/article/details/7694391

默认的UITabBarControllertabBar背景色是黑色的。有时我们的应用需要变更背景色,或用指定图片做为背景图。
如下有两处实现方法, 这两种方法均需要先实例UITabBarController
app的创建的是基于UITabBarController的应用,可将如下代码加入到AppDelegate 的委托方法didFinishLaunchingWithOptions: 

 

方法一:

 

UITabBarController  *tabBarController = [[UITabBarController alloc] init];

CGRect frame = CGRectMake(0, 0, 320, 49);

UIView *v = [[UIView alloc] initWithFrame:frame];

UIImage *img = [UIImage imageNamed:@"tabbar.png"];

UIColor *color = [[UIColor alloc] initWithPatternImage:img];

v.backgroundColor = color;

[tabBarController.tabBar insertSubview:v atIndex:0];

tabBarController.tabBar.opaque = YES;

[color release];

[v release];


方法二:

 

默认UITabBarController的tabBar背景是黑色的。可以按 下面方法:

UITabBarController  *tabBarController = [[UITabBarController alloc] init];

NSArray *array = [tabBarController.view subviews];

UITabBar *tabBar = [array objectAtIndex:1];

UIImage *image = [UIImage imageWithContentsOfFile:sourcePath ];

tabBar.layer.contents = (id)image.CGImage;

 

个人推荐使用第二种方法。代码简洁,思路清晰


3 论坛上找的方法

使用分类 重写这个方法 就可以了
@implementation UITabBar(Draw)



- (void)drawRect:(CGRect)rect{
    
    // Drawing code.
    
    CGRect bounds=[self bounds];
    
    NSLog(@"%@",[NSValue valueWithCGRect:bounds]);
    
    // [[UIColor redColor] set];
    
    [[UIColor colorWithPatternImage:[UIImage imageNamed:@"tablebar.png"]] set];
    
    UIRectFill (bounds);
    
    
    
}

@end 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值