转载:http://zhuhaibobb.blog.163.com/blog/static/274400672012775055613/
转载注明出处:http://hi.baidu.com/yunhuaikong/blog/item/086d43fb79fe82c1b58f3128.html
UITabBarController自己的数据有时候让人无言,如选中时的颜色tintcolor,它的背景等,虽然网络现在修改它的例子很多,但个人感觉都不是最好的办法。毕竟这样做代码量还是比较大的,如何用官方的api实现相应的功能呢?看看效果图:
现在一一说明修改方式:
一、修改背景图片:
素材如下:
二、修改每一个tabbar选中时的颜色,默认为蓝色。此处修改为自定义的颜色。
三、去掉选中时的聚焦高亮颜色。可以对比着看看。这里不给截图。
素材:
宽度为320/tabbar的个数,用背景色。如果需要其他的效果,自己换一个就行了。
另外一种方法通过
@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
更改导航条的颜色
首先准备导航栏背景图片,大小 320x44, @2x文件大小640x88,iOS5以后更改背景图片较简单
- UINavigationBar *navBar = self.navigationController.navigationBar;
- #define kSCNavBarImageTag 10
- if ([navBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)])
- {
- //if iOS 5.0 and later
- [navBar setBackgroundImage:[UIImage imageNamed:@"navbar1.png"] forBarMetrics:UIBarMetricsDefault];
- }
- else
- {
- UIImageView *imageView = (UIImageView *)[navBar viewWithTag:kSCNavBarImageTag];
- if (imageView == nil)
- {
- imageView = [[UIImageView alloc] initWithImage:
- [UIImage imageNamed:@"navbar1.png"]];
- [imageView setTag:kSCNavBarImageTag];
- [navBar insertSubview:imageView atIndex:0];
- [imageView release];
- }
- }
更改颜色,可以使用tintColor属性
- myBar.tintColor = [UIColor greenColor];