swift自定义tabBar

class TabBarViewController: UITabBarController
{
    var tabBarBgImg : UIImageView?
    var tabBarBgImgSelected : UIImageView?
    var selectedButton : UIButton? // 标记选中的按钮
    
    override func viewDidLoad()
    {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor.lightGrayColor()

// 移除系统tabBar,添加自定义tabBar
        self.tabBar.removeFromSuperview()
        var customTabBar = UIView(frame: self.tabBar.frame)
        customTabBar.backgroundColor = UIColor.clearColor()
        self.view.addSubview(customTabBar)

// 添加两个控制器到tabBar
        self.viewControllers = [UINavigationController(rootViewController: HomeViewController()), UINavigationController(rootViewController: GameViewController())]

// 添加按钮到自定义的tabBar
        var btnsCount : Int = 2
        for temp in 0...1
        {
            var btnH : CGFloat = 60
            var btnW : CGFloat = UIScreen.mainScreen().bounds.size.width / CGFloat(btnsCount)
            var btnX : CGFloat = CGFloat(temp) * btnW
            var btnY : CGFloat = 0
            var btn = PPTabBarButton(frame: CGRectMake(btnX, btnY, btnW, btnH))
            customTabBar.addSubview(btn)
            btn.tag = temp
            btn.addTarget(self, action: "didClickButton:", forControlEvents: UIControlEvents.TouchUpInside)
            btn.setBackgroundImage(UIImage(named: "frame-new&hot-top-normal"), forState: UIControlState.Normal)
            btn.setBackgroundImage(UIImage(named: "frame-new&hot-top-pressed"), forState: UIControlState.Selected)
            
            if temp == 0
            {
                btn.selected = true
                self.selectedButton = btn
            }

// 设置按钮背景图片
            if temp == 0
            {
                btn.setImage(UIImage(named: "tab-video-line"), forState: UIControlState.Normal)
                btn.setImage(UIImage(named: "tab-video-solid"), forState: UIControlState.Selected)
            }
            else if temp == 1
            {
                btn.setImage(UIImage(named: "tab-game-line"), forState: UIControlState.Normal)
                btn.setImage(UIImage(named: "tab-game-solid"), forState: UIControlState.Selected)
            }
        }
    }
    
    func didClickButton (button : UIButton) -> Void
    {
        self.selectedButton?.selected = false
        button.selected = true
        self.selectedButton = button
        self.selectedIndex = button.tag
    }

}

时间: 2024-08-17 11:01:33

swift自定义tabBar的相关文章

仿制新浪微博iOS客户端之三-自定义TabBar

继续上一篇文章的进度,我们实际完成了微博基本框架的搭建,具体实现的效果如下左图,但我们实际需要实现的效果为右图,除去主要的页面内容不谈,仅仅下面的TabBar距离我们的需求就有相当的差距.因此本文着重于实现需要的效果.                           再简要汇总一下我们的需求: 1.我们要在TabBar原有四个按钮的基础上,再增加一个按钮,作为撰写微博的入口: 2.新加入的按钮必须和原有按钮一起,均匀分布在TabBar上: 3.新加入的按钮只有图片,没有文字. 需求汇总如上,

swift 自定义TabBarItem

1.效果图     2.NewsViewController.swift // // NewsViewController.swift // NavigationDemo // // Created by 赵超 on 14-6-27. // Copyright (c) 2014年 赵超. All rights reserved. // import UIKit class NewsViewController: UIViewController { override func viewDidLo

IOS开发-关于自定义TabBar条

今天在做项目的时候,突然有一个模块需要自定义TabBar条. 在平常很多做项目的时候,都没有去自定义过,大部分都是使用系统自带的.今天整理一个自定义TabBar条的步骤. 首先看下我们最终实现的效果: 首先需要继承UItabBar自定义一个自己的tabBar .h #import <UIKit/UIKit.h> @class THTabBar; @protocol THTabBarDelegate <UITabBarDelegate> @optional - (void)tabBa

自定义TabBar

UITabBarController是在IOS应用开发中很常用的一个类,继承于UIViewController,来实现多个视图间的切换,但很多时候系统自带的TabBar不能满足我们的需求,系统自带的一些属性我们往往无法修改,像切换项的图片的大小,这时候就需要我们自定义TabBar.例如,我们想实现下方的TabBar的这个效果,使用系统的就无法完成. 演示所需图片下载地址http://download.csdn.net/detail/zsmile123/8136531 --------------

[IOS]swift自定义uicollectionviewcell

刚刚接触swift以及ios,不是很理解有的逻辑,导致某些问题.这里分享一下swift自定义uicollectionviewcell 首先我的viewcontroller不是直接继承uicollectionviewcontroller,而是添加的uicollectionview到我的storyboard, 然后再新建一个swift的文件,让这个swift继承uicollectionviewcell import Foundation class SVGCell :UICollectionView

iOS开发之功能模块--关于自定义TabBar条

只上项目中用到的代码: 1.实现重写TabBar的TabBarItem,然后在中间额外加一个按钮. 1 #import <UIKit/UIKit.h> 2 3 @interface BikeTabBar : UITabBar 4 5 @end 1 #import "BikeTabBar.h" 2 3 @interface BikeTabBar () 4 5 //@property (nonatomic,weak)UIButton *centerButton; 6 7 @en

自定义tabbar(storyBoard)

开发中系统提供的tabbar很难满足我们的项目需求,因此我们需要自定义.下面提供了一种简单自定义tabbar. 1.storyBoard中拖拽几个页面 file:///Users/dingyunfei/Desktop/屏幕快照%202015-11-30%20下午10.45.08.png 2.创建CustomViewController类代码如下 // //  CustomViewController.h //  SB框架搭建 // //  Created by 丁云飞 on 15/11/26.

1行代码为每个Controller自定义“TabBar”-b

这篇文章大致会带你实现以下的功能,废话少说,先看东西: JPNavigationController.gif Q&A:Demo里都有那些东西? 01.关于自定义导航栏 01.第一个控制器的导航条是透明的,第二个控制器的导航条是白色的,第三个控制器的导航条是橙色的.所以,为每个控制器定制自己的导航条. 02.支持全屏右滑,这简直是必须的.关于全屏右滑,最详细,也最早探究这个问题的,我了解到的是 J_雨,他应该是全屏右滑的鼻祖. 03.最重要的一点,要求全屏右滑返回的时候,导航条跟随自己的控制器流畅

自定义tabBar中的注意事项

1.在自定义tabBar中,往tabBar中添加按钮的时候,默认情况下会在按钮的前面和后面添加UITabBarBackgroundView和UIImageView,导致子控件会增加两个,在自动布局中就会出现排版错误. 解决办法:让自定义的tabBar继承UIView. 2.对于tabBarItem,要想改变对象的某个属性,最好使用KVO来监听属性改变,使用的方法如下: ? 1 2 3 4 5 6 7 8 9 /**  *  监听到某个对象的属行改变了就去调用  *  *  @param keyP