(六十三)自定义TabBar和TabBarButtonItem

本文介绍如何在iOS应用中自定义TabBar,通过继承UITabBarController并移除系统默认的TabBarItem,创建自定义的UIView来绘制TabBar。文章详细讲解了如何设置tabBarItem属性,创建和布局自定义按钮,以及调整按钮样式以实现居中显示。同时,通过给按钮添加tag和代理,实现了点击按钮时控制器的切换功能。
摘要由CSDN通过智能技术生成

自定义TabBar


先自定义一个UITabBarController,为了方便跳转与设定属性,借助系统的TabBarController的功能,但是要移除内部的控件然后自己添加一个View和多个按钮。


首先要移除已有的TabBarItem,通过判断是否是TabBarItem,但是TabBarItem是私有类,不让直接判断。

因此通过判断父类类型来检查。


要得到这些控件,需要在viewWillAppear方法中:

- (void)viewWillAppear:(BOOL)animated{
    
    [super viewWillAppear:animated];
    NSLog(@"%d",self.tabBar.subviews.count);
    
    for (UIView *chind in self.tabBar.subviews) {
        
        NSLog(@"%@",chind.superclass);
        
    }
    
}


查看打印可以发现,TabBarButtonItem的父类是UIControl,而UITabBar的父类是UIView。

2015-03-08 16:36:41.244 myWeibo[4832:140039] 5

2015-03-08 16:36:41.245 myWeibo[4832:140039] UIView

2015-03-08 16:36:41.245 myWeibo[4832:140039] UIControl

2015-03-08 16:36:41.245 myWeibo[4832:140039] UIControl

2015-03-08 16:36:41.245 myWeibo[4832:140039] UIControl


2015-03-08 16:36:41.245 myWeibo[4832:140039] UIControl


注意,通过isKindOfClass方法,可以判断多态性,例如TabBarButtonItem继承自UIControl,那么使用这个方法判断是否是UIControl,会返回真。

- (void)viewWillAppear:(BOOL)animated{
    
    [super viewWillAppear:animated];
    
    for (UIView *chind in self.tabBar.subviews) {
        
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值