您的位置:首页 > 产品设计 > UI/UE

ios:UITabBarController 修改背景图,修改选中时背景色

2013-01-31 15:33 513 查看
转载注明出处: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];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: