ios:UITabBarController 修改背景图,修改选中时背景色
2013-01-31 15:33
513 查看
转载注明出处:http://hi.baidu.com/yunhuaikong/blog/item/086d43fb79fe82c1b58f3128.html
UITabBarController自己的数据有时候让人无言,如选中时的颜色tintcolor,它的背景等,虽然网络现在修改它的例子很多,但个人感觉都不是最好的办法。毕竟这样做代码量还是比较大的,如何用官方的api实现相应的功能呢?看看效果图:
![](http://img.ph.126.net/i2wPLQdoT9GLuvPkIGNUTA==/6597507372283859228.jpg)
现在一一说明修改方式:
![](http://img.ph.126.net/wQGPfCUAjzg9I7NfFxbK-Q==/6597507372283859229.jpg)
一、修改背景图片:
![](http://img.ph.126.net/Plr57RaUyi15mmHVzsJsNQ==/6597507372283859230.jpg)
素材如下:
![](http://img.ph.126.net/Z5nMmlQIOoR64tPIHF5Bmw==/6597507372283859231.jpg)
二、修改每一个tabbar选中时的颜色,默认为蓝色。此处修改为自定义的颜色。
![](http://img.ph.126.net/IAgq5SQd2Q0r5O2CkZcLLg==/6597507372283859232.jpg)
![](http://img.ph.126.net/jaL7unk80dp0iis_zFTmog==/6597507372283859233.jpg)
三、去掉选中时的聚焦高亮颜色。可以对比着看看。这里不给截图。
素材:
![](http://img.ph.126.net/haMPE4sx6bN0AGkSBBF5uw==/6597507372283859234.jpg)
宽度为320/tabbar的个数,用背景色。如果需要其他的效果,自己换一个就行了。
![](http://img.ph.126.net/h2za2yLCFJPBTDypTK5fyQ==/6597507372283859235.jpg)
另外一种方法通过
@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];
UITabBarController自己的数据有时候让人无言,如选中时的颜色tintcolor,它的背景等,虽然网络现在修改它的例子很多,但个人感觉都不是最好的办法。毕竟这样做代码量还是比较大的,如何用官方的api实现相应的功能呢?看看效果图:
![](http://img.ph.126.net/i2wPLQdoT9GLuvPkIGNUTA==/6597507372283859228.jpg)
现在一一说明修改方式:
![](http://img.ph.126.net/wQGPfCUAjzg9I7NfFxbK-Q==/6597507372283859229.jpg)
一、修改背景图片:
![](http://img.ph.126.net/Plr57RaUyi15mmHVzsJsNQ==/6597507372283859230.jpg)
素材如下:
![](http://img.ph.126.net/Z5nMmlQIOoR64tPIHF5Bmw==/6597507372283859231.jpg)
二、修改每一个tabbar选中时的颜色,默认为蓝色。此处修改为自定义的颜色。
![](http://img.ph.126.net/IAgq5SQd2Q0r5O2CkZcLLg==/6597507372283859232.jpg)
![](http://img.ph.126.net/jaL7unk80dp0iis_zFTmog==/6597507372283859233.jpg)
三、去掉选中时的聚焦高亮颜色。可以对比着看看。这里不给截图。
素材:
![](http://img.ph.126.net/haMPE4sx6bN0AGkSBBF5uw==/6597507372283859234.jpg)
宽度为320/tabbar的个数,用背景色。如果需要其他的效果,自己换一个就行了。
![](http://img.ph.126.net/h2za2yLCFJPBTDypTK5fyQ==/6597507372283859235.jpg)
另外一种方法通过
@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];
相关文章推荐
- ios更改UITabBarController背景以及选中背景图片的方法
- IOS UITabBarViewController 修改背景颜色
- ios更改UITabBarController背景以及选中背景图片的方法 以及隐藏tabbar
- ios更改UITabBarController背景以及选中背景图片的方法
- ios更改UITabBarController背景以及选中背景图片的方法
- (原) 定制使UITabBarController的tabbar选中tabbaritem时不高亮以及换背景色(支持iPad旋转)
- iOS UINavigationController 修改导航条背景
- ios:修改tabbar或者navgationBar背景色和图标选中颜色
- iOS开中设置UITabBar的背景图片以及各个item的选中图片和未选中
- IOS总结_无需自定义UITabbar也可改变UITabbarController的背景和点击和的颜色
- ios 修改UITabBarItem字体颜色,正常与选中状态
- 定制使UITabBarController的tabbar选中tabbaritem时不高亮以及换背景色(支持iPad旋转)/IOS5&IOS4
- iOS开发 在storyboard中拖的UITabBarController,设置选中时的图片和字体颜色
- iOS UINavigationController修改导航栏标题、按钮文字以及背景的颜色
- [iOS]iOS7+ UITabBar修改选中图片显示为默认蓝色的问题解决方法,去除UITabbar顶部一像素横线
- UITabBarController修改背景
- UITabBarController 修改背景
- iOS设置UITableViewCell的背景色透明和设置选中背景颜色的方法
- UITabBarController 修改背景
- iOS开发- UITabBarController的TabBar、TabBarItem背景颜色设置