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,效果
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,效果
相关文章推荐
- 【深入浅出IOS开发】UITabBarController和UINavigationController混合使用
- iOS开发UI篇—UITabBarController简单介绍
- iOS开发之bug:ios Warning: Attempt to present <a viewController: 0x10d0611b0> on <UITabBarController: 0
- iOS开发-UI (十一) UITabBarController
- UITabBarController 标签栏控制器-IOS开发
- iOS开发-------UITabBarController(标签控制器)
- iOS开发UITabBarController的几种代理方法以及结合NSUserDefaults还原上次退出时被选中视图控制器和视图控制器的顺序
- iOS开发:自定义UITabBarController标签控制栏
- 学习IOS开发UI篇--UITabBarController
- iOS 开发学习之 User Interface(7)UINavigationController 与 UITabBarController
- iOS开发UI篇—UITabBarController简单介绍
- IOS开发(5)UITabBarController
- iOS开发之高级视图—— UITabBarController
- 【iOS开发】---- UITabBarController的使用详解
- IOS开发之自定义UITabBarController
- iOS开发UI篇—UITabBarController简单介绍
- 自学iOS开发系列----UI(视图编程入门:UITabBarController)
- 【iOS开发-30】UITabBarController的几种代理方法以及结合NSUserDefaults还原上次退出时被选中视图控制器和视图控制器的顺序
- iOS开发UI篇—UITabBarController生命周期(使用storyoard搭建)
- iOS开发UI篇—UITabBarController简单介绍