iOS 在TabViewController中设置Tab Bar,且实现自定义

开发环境:Xcode 6.1 iOS 7.1.2 & iOS 8.1

实现功能一,在打开APP时即显示第三个Tab对应的View;

实现功能二,给每一个Tab设置图片和选中图片。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.

    //---------------------------------------------
    // set the first view as camera view and custom tab bar
    //---------------------------------------------
    [self setTabBar];
}

实现setTab Bar:

//---------------------------------------------
#pragma mark - Tab Bar
//---------------------------------------------
- (void) setTabBar{
    UITabBarController *tabViewController = (UITabBarController *) self.window.rootViewController;
    [tabViewController setSelectedIndex:2];

    UITabBar *tabBar = tabViewController.tabBar;
    [tabBar setTintColor: [UIColor greenColor]];

    // First
    UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];
    UIImage* tabBarItem1Image = [UIImage imageNamed:@"XXX"];
    UIImage *scaledTabBarItem1Image = [UIImage imageWithCGImage:[tabBarItem1Image CGImage] scale:(tabBarItem1Image.scale * 3) orientation:(tabBarItem1Image.imageOrientation)];
    UIImage* tabBarItem1SelectedImage = [UIImage imageNamed:@"XXX"];
    UIImage *scaledTabBarItem1SelectedImage = [UIImage imageWithCGImage:[tabBarItem1SelectedImage CGImage] scale:(tabBarItem1SelectedImage.scale * 3) orientation:(tabBarItem1SelectedImage.imageOrientation)];
    (void)[tabBarItem1 initWithTitle:@"First" image:scaledTabBarItem1Image selectedImage:scaledTabBarItem1SelectedImage];

    // Second
    UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1];
    UIImage* tabBarItem2Image = [UIImage imageNamed:@"XXX"];
    UIImage *scaledTabBarItem2Image = [UIImage imageWithCGImage:[tabBarItem2Image CGImage] scale:(tabBarItem2Image.scale * 3) orientation:(tabBarItem2Image.imageOrientation)];
    UIImage* tabBarItem2SelectedImage = [UIImage imageNamed:@"XXX"];
    UIImage *scaledTabBarItem2SelectedImage = [UIImage imageWithCGImage:[tabBarItem2SelectedImage CGImage] scale:(tabBarItem2SelectedImage.scale * 3) orientation:(tabBarItem2SelectedImage.imageOrientation)];
    (void)[tabBarItem2 initWithTitle:@"Second" image:scaledTabBarItem2Image selectedImage:scaledTabBarItem2SelectedImage];

    // And Others Tabs - 同样的方法

}

在didFinishLaunchingWithOptions就自定义跳转直接到某一个Tab:

    UITabBarController *tabViewController = (UITabBarController *) self.window.rootViewController;
    [tabViewController setSelectedIndex:2];

为了保证像素,使图标比较清晰,使用了大的图片,然后用代码将其缩小:

[UIImage imageWithCGImage:[tabBarItem1Image CGImage] scale:(tabBarItem1Image.scale * 3) orientation:(tabBarItem1Image.imageOrientation)];

另:

因为selected image系统总是会将图片设置成和tint color一样颜色的图片,默认是蓝色,所以需要自己设置你需要的颜色:

[tabBar setTintColor: [UIColor greenColor]];

参考链接:

http://stackoverflow.com/questions/18894985/uitabbar-not-showing-selected-item-images-in-ios-7

http://stackoverflow.com/a/19386156/3458781

http://www.appcoda.com/ios-programming-how-to-customize-tab-bar-background-appearance/

时间: 2024-11-07 11:49:28

iOS 在TabViewController中设置Tab Bar,且实现自定义的相关文章

复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符及在vim中设置tab缩进为4个字符

1.复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符 在命令模式下,使用正则表达式匹配 行首有空白字符行的模式:^[[:space:]]*\([^[:space:]]*\),输出命令 %s#^[[:space:]]*\([^[:space:]]*\)#\1#g1 2.vim中设置tab缩进为4个字符 vim .vimrc 输入 set tabstop=4 原文地址:https://www.cnblogs.com/mwd-123/p/

《iOS Human Interface Guidelines》——Tab Bar

标签栏 标签栏让人们可以在一个app不同的子任务.视图或模式之间切换. API NOTE 标签栏包含在标签栏控制器(管理一系列自定义视图的显示)内.查看Tab Bar Controllers和UITabBar来学习更多关于在你的代码中定义标签栏的内容. 一个标签栏: 是半透明的 总是出现在屏幕的底部边缘 在垂直紧凑环境下一次最多显示五个标签(如果有更多的标签,标签栏会显示其中四个,并添加一个"更多"标签,来在一个列表中显示其余的标签) 在所有方向保持同样的高度 可以在标签上显示一个标记

在 Vim 中设置 Tab 为4个空格

缩进用 tab 制表符还是空格,这不是个问题,就像 python 用四个空格来缩进一样,这是要看个人喜好的.在 Vim 中可以很方便的根据不同的文件类型来设置使用 tab 制表符或者空格,还可以设置长度,非常灵活. 首先来看如何设定 tab 的宽度以及如何确定用 tab 制表符还是空格来表示一个缩进: set tabstop=4 set softtabstop=4 set shiftwidth=4 set noexpandtab / expandtab 说明: 其中 tabstop 表示一个 t

如何在vi中设置tab的长度

在使用vi写python时(其实,不管用什么写python程序时,都要注意),首先要将Tab键的长度设为4,因为使用python编程时,我们是通过缩进来实现作用域的,所以要统一Tab键的长度.具体方法如下: 在每个用户的主目录下,都有一个 vi的配置文件".vimrc"或".exrc",没有的可以新建一个.用户可以编辑它,使这些设置在每次启动 vi 时,都有效.例如,加入如下设置行:set tabstop=4 设置tab键为4个空格set nu 显示行号set no

IDEA中设置Tab多行显示、打开过多自动关闭的方法

IDEA中默认Tab是单行显示的,而且默认允许同时打开10个Tab,继续打开Tab会根据规则关闭之前打开的Tab.但是可以通过设置来符合自己的使用习惯. 一.打开Tab过多自动关闭 1.选择File→Settings→Editor→General→Editor Tabs,将Tab limit的数量调高即可. 下面还可以选择,当数量达到设置的限制时,优先关闭Tab的规则: Close non-modified files first:优先关闭没有修改过的Tab. Close less freque

linux中设置TAB键的宽度

对于编程的人员来说,经常需要排版代码,这时候就需要TAB键,但TAB键的宽度太大,很有可能代码太长,延伸到下一行,这个时候你就需要设置TAB键的宽度了. linux下设置TAB键的宽度,做法如下: 在你的用户根目录下直接VI打开 .vimrc文件,输入vi ~/.vimrc 添加如下命令:set tabstop=4 :x保存退出,运行以下命令使该配置文件生效 版权声明:本文为博主原创文章,未经博主允许不得转载.

如何在linux中设置tab键长度

1. 创建文件名为 .vimrc 的系统文件 首先切换到用户根目录,然后创建文件. $ cd ~ $ vim .vimrc 2. 在文件中输入下面的内容并保存 set tabstop=4 set shiftwidth=4 其中: tabstop 表示一个 tab 显示出来是多少个空格的长度,默认 8. shiftwidth 表示每一级缩进的长度,一般设置成跟 softtabstop 一样. 3. 更新配置 跟更新其他的配置文件一样,使用下面的命令经常. $ source .vimrc 注:这只能

iOS 在TabViewController中的一个ViewController跳转到另一个ViewController

步骤一: #import "AppDelegate.h" 步骤二: 在需要跳转的地方: AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; UITabBarController *tabViewController = (UITabBarController *) appDelegate.window.rootViewController; [tabViewCon

IOS 网络请求中设置cookie

本文转载至 http://tec.5lulu.com/detail/108k0n1e626py8s96.html 1ASIHTTPRequest ASIHTTPRequest 是一款极其强劲的 HTTP 访问开源项目.让简单的 API 完成复杂的功能,如:异步请求,队列请求,GZIP 压缩,缓存,断点续传,进度跟踪,上传文件,HTTP 认证. cookie的支持 如果 Cookie 存在的话,会把这些信息放在 NSHTTPCookieStorage 容器中共享,并供下次使用.你可以用 [ ASI