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

IOS开发 UITabBarController

2015-04-25 15:24 211 查看
1,本文仅描述我在学习和使用UITabBarController过程的笔记和遇到的问题

2,正文
例子是按这篇文章搭建起来的@http://www.cnblogs.com/wendingding/p/3775488.html

3,问题
在实际需求当中,产品需要定制每个tab的 图片、文字都有选selected和normal状态,

1》系统默认的图片和文本是blue,即使给定的图片为别的颜色
(详细原因这篇文章有介绍@http://blog.csdn.net/kevinwlc/article/details/21467499)
2》tab上图片和文字的距离也需要定制
(具体实现这篇文章有介绍@http://www.cocoachina.com/bbs/read.php?tid=214060)

4,具体代码(一下所有代码都在AppDelegate.m中添加)

self.window = [[UIWindow
alloc] initWithFrame:[[UIScreen
mainScreen] bounds]];

self.window.backgroundColor = [UIColor
whiteColor];

[self.window
makeKeyAndVisible];

//tab容器

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

self.window.rootViewController = tbc;

UIViewController *vc1 = [[UIViewController
alloc]
init];

vc1.view.backgroundColor = [UIColor
whiteColor];

vc1.tabBarItem.title =
@"缘分";



//选中和未选中的图片变化

if ([[UIDevice
currentDevice].systemVersion
floatValue] >= 7.0) {

vc1.tabBarItem.image = [[UIImage
imageNamed:@"tab_luck_normal.png"]
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

vc1.tabBarItem.selectedImage = [[UIImage
imageNamed:@"tab_luck_selected.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}
else {

//参考@http://blog.csdn.net/kevinwlc/article/details/21467499
}

//图片和文字的距离控制

UIOffset offset =
UIOffsetMake(0, -5);



[vc1.tabBarItem
setTitlePositionAdjustment:offset];

//选中和未选中的图片变化

if ([[UIDevice
currentDevice].systemVersion
floatValue] >= 7.0) {

vc2.tabBarItem.image = [[UIImage
imageNamed:@"tab_search_normal.png"]
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

vc2.tabBarItem.selectedImage = [[UIImage
imageNamed:@"tab_search_selected.png"]
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}
else {

//参考
}



[vc2.tabBarItem
setTitlePositionAdjustment:offset];



//选中和未选中文字颜色控制

[[UITabBarItem
appearance] setTitleTextAttributes:[NSDictionary
dictionaryWithObjectsAndKeys:[UIColor
blackColor],
NSForegroundColorAttributeName, nil]
forState:UIControlStateNormal];


UIColor *titleHighlightedColor = [UIColor
redColor];

[[UITabBarItem
appearance] setTitleTextAttributes:[NSDictionary
dictionaryWithObjectsAndKeys:titleHighlightedColor,
NSForegroundColorAttributeName,nil]
forState:UIControlStateSelected];

tbc.viewControllers =
@[vc1, vc2];

5,效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: