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 viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor=UIColor.blueColor()
self.title="新闻"
}
}
3.MoviewViewController.swift
//
// MovieViewController.swift
// NavigationDemo
//
// Created by 赵超 on 14-6-27.
// Copyright (c) 2014年 赵超. All rights reserved.
// import UIKit class MovieViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor=UIColor.redColor()
self.title="电影"
}
}
4.AppDelegate.swift
//
// AppDelegate.swift
// NavigationDemo
//
// Created by 赵超 on 14-6-27.
// Copyright (c) 2014年 赵超. All rights reserved.
// import UIKit @UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
// Override point for customization after application launch.
self.window!.backgroundColor = UIColor.whiteColor()
self.window!.makeKeyAndVisible()
//设置根控制器
var root=RootViewController()
self.window!.rootViewController=root
return true
} func applicationWillResignActive(application: UIApplication) {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
} func applicationDidEnterBackground(application: UIApplication) {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
} func applicationWillEnterForeground(application: UIApplication) {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
} func applicationDidBecomeActive(application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
} func applicationWillTerminate(application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
} }
5.RootViewController.swift
//
// RootViewController.swift
// NavigationDemo
//
// Created by 赵超 on 14-6-27.
// Copyright (c) 2014年 赵超. All rights reserved.
//å import UIKit class RootViewController: UITabBarController { var tabBarBgImg:UIImageView?
var tabBarBgImgSelected:UIImageView? override func viewDidLoad() {
super.viewDidLoad()
//隐藏自带tabBarItem
self.tabBar.hidden=true
customTabBar()
loadViewController()
}
//选择视图
func test(tap:UITapGestureRecognizer){
var view=tap.view
var index=view.tag as Int
var z=(index)*57
var c=CGFloat(z)
var x:CGFloat=5.0 + c
var y=tabBarBgImg!.frame.size.height/2-45/2
UIView.beginAnimations("test",context:nil)
tabBarBgImgSelected!.frame = CGRectMake(x ,y, 50, 45)
UIView.commitAnimations()
//跳转页面
self.selectedIndex=view.tag } //自定义tabBar视图
func customTabBar(){ var height=UIScreen.mainScreen().bounds.size.height
var width=UIScreen.mainScreen().bounds.size.width
var tabW=width
var tabH=height-49
tabBarBgImg=UIImageView(frame:CGRectMake(0,tabH,tabW,49))
//打开事件
tabBarBgImg!.userInteractionEnabled=true
tabBarBgImg!.image=UIImage(named:"tab_bg_all") //选中背影图片
var y=tabBarBgImg!.frame.size.height/2-45/2
tabBarBgImgSelected=UIImageView(frame:CGRectMake(5,y, 50, 45))
tabBarBgImgSelected!.image=UIImage(named:"selectTabbar_bg_all1")
tabBarBgImg!.addSubview(tabBarBgImgSelected) var x:CGFloat=0
var images=["icon_cinema","msg_new"]
var titles=["电影","新闻"]
var titleFont=UIFont.systemFontOfSize(12)
for index in 0..2{
var imgView=UIImageView(frame:CGRectMake( x+18, y+5, 22, 22))
//添加事件
imgView.userInteractionEnabled=true
imgView.tag=index
var tap=UITapGestureRecognizer(target:self,action:Selector("test:"))
imgView.addGestureRecognizer(tap) imgView.image = UIImage(named:images[index])
tabBarBgImg!.addSubview(imgView)
var title=UILabel(frame:CGRectMake(x+16,y+26,45,15))
title.text=titles[index]
title.font=titleFont
title.textColor = UIColor.whiteColor()
tabBarBgImg!.addSubview(title)
x+=57
}
self.view.addSubview(tabBarBgImg) } //加载子视图控制器
func loadViewController(){
//USA
var movie=MovieViewController()
var movieItem=UITabBarItem(tabBarSystemItem: .Favorites,tag:1)
movie.tabBarItem=movieItem
var movieNav=UINavigationController(rootViewController:movie)
//News
var news=NewsViewController()
var newsItem=UITabBarItem(tabBarSystemItem: .Favorites,tag:2)
news.tabBarItem=newsItem
var newsNav=UINavigationController(rootViewController:news) //数组
var ctrls=[movieNav,newsNav]
//添加
self.setViewControllers(ctrls,animated:true)
} }
swift 自定义TabBarItem的更多相关文章
- [IOS]swift自定义uicollectionviewcell
刚刚接触swift以及ios,不是很理解有的逻辑,导致某些问题.这里分享一下swift自定义uicollectionviewcell 首先我的viewcontroller不是直接继承uicollect ...
- Swift 自定义打印方法
Swift 自定义打印方法 代码如下 // MARK:- 自定义打印方法 func MLLog<T>(_ message : T, file : String = #file, funcN ...
- swift 自定义图片轮播视图
Swift封装图片轮播视图: import UIKit class XHAdLoopView: UIView { private var pageControl : UIPageControl? pr ...
- Swift 自定义Subscript
Swift可以方便给自定义类加下标,其中参数和返回值可以在类里定义为任意类型: subscript(parameters) -> ReturnType { get { //return some ...
- swift:自定义UICollectionViewFlowLayout
写作目的 UICollectionView是ios中一个十分强大的控件,利用它能够十分简单的实现一些很好看的效果.UICollectionView的效果又依赖于UICollectionViewLayo ...
- Swift - 自定义UIActivity分享
UIActivity可以十分方便地将文字.图片等内容进行分享,比如分享到微信.微博.发送邮件.短信等等.我们不仅可以分享内容出来,也可以在自己的App里添加自己的分享按钮或隐藏已有的分享按钮来实现定制 ...
- Swift - 自定义单元格实现微信聊天界面
1,下面是一个放微信聊天界面的消息展示列表,实现的功能有: (1)消息可以是文本消息也可以是图片消息 (2)消息背景为气泡状图片,同时消息气泡可根据内容自适应大小 (3)每条消息旁边有头像,在左边表示 ...
- swift 自定义弹框
// // ViewController.swift // animationAlert // // Created by su on 15/12/9. // Copyright © 2015 ...
- Swift自定义AlertView
今天项目加新需求,添加积分过期提醒功能: 第一反应就用系统的UIAlertViewController,但是message中积分是需要红色显示. // let str = "尊敬的顾客,您有 ...
随机推荐
- C++学习之虚继承
http://blog.csdn.net/wangxingbao4227/article/details/6772579 C++中虚拟继承的概念 为了解决从不同途径继承来的同名的数据成员在内存中有不同 ...
- UIView 设置阴影(属性说明)
以下代码实现: 第一个图片的代码 //加阴影--任海丽编辑 _imageView.layer.shadowColor = [UIColor blackColor].CGColor;//shadowCo ...
- HTML解决div里面img的缝隙问题
图片IMG与容器下边界之间有空隙怎么办?这里介绍3中简单的解决方法. 第一,给图片img标签display:block. img{display:block} 第二,定义容器里的字体大小为0. div ...
- Nginx阅读笔记(三)之proxy_pass用法
在nginx中配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走,如果没有/,则会把匹配的路径部分也给代理走. 假设访问 ...
- SQL分页存储过程(不支持多表联合查询,不支持多字段排序)
CREATE PROCEDURE [dbo].[Pro_GetPageOfRecords] @PageSize INT=20, --分页大小 @CurrentPage INT, --第几页 @Clum ...
- 通过原生js的ajax或jquery的ajax获取服务器的时间
在实际的业务逻辑中,经常是与时间相关的,而前端能获得的时间有两个:客户端的时间,服务器的时间. 客户端时间通过 javascript中的Date对象可以获取,如 var dt = new Date() ...
- UNIX 缩写风格
构建于图形界面之上的操作系统,使用鼠标作为主输入设备, 是否使用缩写并不重要.比如 Windows 系统中的目录,几乎都是全称…… 点击两次鼠标进入文件夹 pf, 并不意味着点击13次才能进入文件夹 ...
- 在MDK中怎样生成*.bin格式的文件?
在Realview MDK的集成开发环境中.默认情况下能够生成*.axf格式的调试文件和*.hex格式的可运行文件. 尽管这两个格式的文件很有利于ULINK2仿真器的下载和调试,可是ADS的用户更习惯 ...
- Latex(一)公式自动编号与自动引用
在进行latex引用时,有两种办法: 一,被动引用. 如有这样一段代码: $$ x^2+y^2= z^2.\eqno(1.1) $$ In this paper, we investigated (1 ...
- 树莓派变成一个Web服务器: nginx + php + sqlite
将树莓派变成一个Web服务器,通过访问网页,就可以控制树莓派,比如:查看摄像头\开灯等等. 一想到Linux Web服务器,我们首先想到的是,Apache + MySql + Php. 树莓派可以安装 ...