码迷,mamicode.com
首页 > 移动开发 > 详细

如何在UITabbar自定义修改并添加UIBarButtomItem ----ios

时间:2016-07-09 11:53:09      阅读:442      评论:0      收藏:0      [点我收藏+]

标签:

如下图效果图:

技术分享

我觉得挺好看的,哈哈哈

分析:

如果我们直接调用系统的API,一个一个控制器添加到tabbar中,效果会是这样

技术分享

好丑!,原因是本来图标大小不合适,而且系统会帮你渲染。

我这里是通过KVC方法修改了系统的UITabbar,使用自定义的Tabbar

//在ABTabbarControl.m文件中,继承与UITabbarControl
//在创建一个ABTabbar,继承与UITabbar
//在viewdidLoad方法中替换系统的Tabbar
override func viewDidLoad() {
        super.viewDidLoad()
        setupUI()
        setupNav()
        setupTabBar()
        
    }

 func setupTabBar(){

        let tabbar = ABTabbar()
        setValue(tabbar, forKey: "tabBar")
    
    }

我的思路是这样的,先把中间那个按钮不加入tabbar中,而是通过重写它的layoutSubview方法在加入进去 

然后在ABTabbar重写它的layoutSubview方法

  

import UIKit


class ABTabbar: UITabBar {
//创建中间的那个按钮
     lazy var plusButton : UIButton =  {
        let btn = UIButton.init(type: UIButtonType.Custom)
        btn.setImage(UIImage(named: "icon_tabBar_speedy_menu_selected"), forState: .Normal)
        btn.setImage(UIImage(named: "icon_tabBar_speedy_menu"), forState: .Selected)
        btn.sizeToFit()
        self.addSubview(btn)
        return btn
        
    }()
    
    
    override func layoutSubviews() {
        super.layoutSubviews()
    
        let count = (items?.count)! + 1
        var x : CGFloat = 0.0
        let y : CGFloat = 0.0
        let w : CGFloat = bounds.size.width / CGFloat(count)
        let h : CGFloat = bounds.size.height

        var num = 0
        for item in self.subviews{
          //判断是否为button
            if !item.isKindOfClass(NSClassFromString("UITabBarButton")!) {continue}
         //   留一个位置给中间的button
            if num == 2 {num = 3}
            x = CGFloat(num) * w
            item.frame = CGRectMake(x, y, w, h)
            num = num + 1
            
            
           
            
        }
        //这是给中间的button设置frame,在中间的位置,
       //我在Y值上减了15, 这样它的位置会稍微移上一点,感觉很好看
        self.plusButton.center = CGPointMake(self.frame.size.width * 0.5 ,(self.frame.size.height * 0.5 - 15))
        
        
    }
    
}
                

  

 

如何在UITabbar自定义修改并添加UIBarButtomItem ----ios

标签:

原文地址:http://www.cnblogs.com/beNabenen/p/5655348.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!