iOS之定制tabbar
我们知道,一个Tab控制器控制着若干视图控制器,它是由一个数组进行管理的,每一个Tab控制器只有一 UITabBar视图,用于显示UITabBarItem实例。我们通过点击UITabBarItem来切换视图控制器,现在我们就来说怎么定制我们想要的tabbar视图。
步骤一:通过Single ViewApplication取新建一个工程,在Main.storyboard中右边栏中选择TabBarController拖进storyboard操作区间,如图:
步骤二:我们把TabBarViewController连着的两个itemViewController删除,重新拖两个NavigationViewController,并通过vireControllers连线,结果如下:
在左边选择对应的控制器的item,在右边的TabBarItem和BarItem中填写相应的信息:
同理,如果我们需要更多的barItem,重复步骤二便是,即我们需要几个baritem,就拖几个NavigationViewController,再执行相同的操作。
就比如我们要四个baritem,并且在storyboard中的baritem中设置对应的图片后,得到这样的效果:
但是,如果我们不想要item下面的标题,去掉标题后问题来了:item图标明显偏上:
怎么让这些item居中呢?
我们在这里调整:
将Image Inset中的Top和Bottom由原来的0分别改成5,-5即可。
于是得到:
显然,这还不是我们最终要的,我们还需要点击效果:有item的切换图标 ,并且有选中效果,我们在AppDelegate中加入如下代码即可:
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UITabBar *tabBar = tabBarController.tabBar;
UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];
UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1];
UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:2];
UITabBarItem *tabBarItem4 = [tabBar.items objectAtIndex:3];
tabBarItem1.selectedImage = [UIImage imageNamed:@"hot_selected"];
tabBarItem2.selectedImage = [UIImage imageNamed:@"collect_selected"];
tabBarItem3.selectedImage = [UIImage imageNamed:@"category_selected"];
tabBarItem4.selectedImage =[UIImage imageNamed:@"me_selected"];
//设置选中item的图片颜⾊
[tabBarController.tabBar setSelectedImageTintColor:[UIColor whiteColor]];
//设置选中item后,显示在此item下面的图⽚
tabBar.selectionIndicatorImage = [UIImage imageNamed:@"select_bg"];
关于taabr,我们还有这样的设置:
//设置tabBar的背景图⽚
tabBarController.tabBar.backgroundImage = [UIImage imageNamed:@"tabbarbg.png"];
//设置tabBar的背景颜⾊
tabBarController.tabBar.tintColor = [UIColor grayColor];
iOS之定制tabbar的更多相关文章
- iOS自定制tabbar与系统的tabbar冲突,造成第一次点击各个item图片更换选中,第二次选中部分item图片不改变
可以选择是使用自定制的还是系统的,如果使用自定制的,就使用以下方法即可隐藏系统的uitabbarButton,从而使item恢复正确 //隐藏UITabBarButton -(void)viewWil ...
- iOS 隐藏自定义tabbar
iOS 隐藏自定义tabbar -(void)viewWillAppear:(BOOL)animated { NSArray *array=self.tabBarController.view.su ...
- iOS开发-定制多样式二维码
iOS开发-定制多样式二维码 二维码/条形码是按照某种特定的几何图形按一定规律在平台(一维/二维方向上)分布的黑白相间的图形纪录符号信息.使用若干个与二进制对应的几何形体来表示文字数值信息. 最常 ...
- iOS拍照定制之AVCaptureVideoDataOutput
问题 领导看了前面做的拍照,问了句"哪来的声音", "系统的,自带的,你看系统的拍照也有声音" "有办法能去掉吗?挺糟心的" "我 ...
- iOS UIKit:TabBar Controller
1 结构剖析 IOS中的标签导航其实是一个UITabBarController对象,其也是一个Container View Controller.UITabBarController对象创建和管理了一 ...
- 【iOS】彩色TabBar切换动画实现
无意间看到一个彩色TabBar切换的设计图,感觉很不错,有空就把他实现了. 环境信息 Mac OS X 10.10.4 Xcode 6.4 iOS 8.4 效果图: 效果图 源码下载地址: https ...
- iOS开发——代码生成TabBar与视图切换具体解释
我在之前多篇博客中解说了在不使用storyboard而使用nib文件的情况下.使用代码生成导航栏并进行跳转,具体能够參考<iOS开发--界面跳转与返回及视图类型具体解释><iOS纯代 ...
- iOS拍照定制之AVCapturePhotoOutput
问题 领导安排任务,写个拍照功能,界面跟系统拍照有点出入 拍完照片,底部显示已拍照片,有个拍照上限[在此不论] 点击已拍照片,可以预览.放大缩小查看 思路 系统拍照肯定不行了,只能定制,没提是否拍照禁 ...
- IOS 如何隐藏tabbar
系统自带的UITabBarController有时候到不到要求,需要自定义样式. 有一种方法就是在TabBar上面在放一层自己的,正好把原来的遮住. 那么,从Tab进入子的Controller想要隐藏 ...
随机推荐
- 如何用js让表格的行也能拖动
行拖动的实现思路非常简单,选中一行,往上拖就与上面的行交换位置,往下拖就与下面的行交换位置.问题是如何得到交换行.我见过一个非常详细的教程,它会把表格里的每一行的高度与Y坐标计算出来,换言之,都时是比 ...
- java 复习整理(三 修饰符)
访问控制修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java支持4种不同的访问权限. 默认的,也称为default,在同一包内可见,不使用任何修饰符. 私有的,以pr ...
- centos 7 服务器网卡做bond
前期环境准备 [root@ /root] alibaba cloud#cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core)[root@ ...
- 前端模块加载规范AMD与CMD小记
AMD代表:requirejs: CMD代表:seajs: AMD CMD 代表 requirejs seajs 执行 提前加载,不管是否调用模块,先解析所以模块 提前加载,在真正需要使 ...
- 汕头市队赛 SRM 08 A
比赛没参加 所以回来补题咯 A还是自己YY出来了的 可惜比赛没有打 描述 给一个 01 串设为其 S,询问是否存在只出现两次的 01 串 T. 这里的出现定义为存在一串下标 ,满足 且 . 输入格式 ...
- js querySelector与getElementById
querySelector不能取到id以数字开头的元素,据说是遵循css规范.而document.getElementById是可以的.
- flexigrid 学习总结
最近看到了一款flexigrid表格组件,简单美观,在下载使用的过程中,发现缺少很多功能.<基于jQuery的GridView-Flexigrid(2)-扩展和修复>给我带来了很大的帮助, ...
- 学习webservice
客户端测试页: WebService代码: using System; using System.Collections.Generic; using System.Linq; using Syste ...
- C 随机不重复元素~转
随机产生不重复元素:如何高效产生m个n范围内的不重复随机数(m<=n) 如何产生不重复的随机数?最容易想到的方法,是逐个产生这些随机数,每产生一个,都跟前面的随机数比较,如果重复,就重新产生.这 ...
- 推荐几个好用的PHP集成开发环境
(转自:http://blog.sina.com.cn/s/blog_5bd6b45101011bu2.html ) 分类: PHP PHP新手在准备正式开始写PHP代码的时候,不幸的是被PHP的开发 ...