设为首页 加入收藏

TOP

Swift学习--微博的基础框架搭建(三)
2017-10-10 12:16:06 】 浏览:1018
Tags:Swift 学习 基础 框架 搭建
roller
", title: "首页", imageName: "tabbar_home") addChildViewController("MessageTableViewController", title: "消息", imageName: "tabbar_message_center") // 添加占位控制器 addChildViewController("PlusViewController", title: "", imageName: "") addChildViewController("DiscoverTableViewController", title: "广场", imageName: "tabbar_discover") addChildViewController("ProfileTableViewController", title: "", imageName: "tabbar_profile") } } } private lazy var composeBtn:UIButton = { // 1.创建按钮 let button = UIButton() // 2.设置图片 button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal) button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Highlighted) // 3.设置背景图片 button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal) button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Highlighted) // 4.添加监听 button.addTarget(self, action: "composetBtnClick", forControlEvents: UIControlEvents.TouchUpInside) // 5.添加到tabBar上 // Swift中能不写self就不写self, 在闭包中必须写self // self.tabBar.addSubview(button) // 6.返回按钮 return button }() // 运行循环监听到事件后,向 VC 发送消息,动态执行 方法,因此不能设置为 private func composetBtnClick() { print(__FUNCTION__) } /** 初始化子控制器 - parameter childController: 需要初始化的子控制器 - parameter title: 子控制器的标题 - parameter imageName: 子控制器的图片名字 */ private func addChildViewController(childControllerName: String, title:String, imageName:String) { //动态获取命名空间 let ns = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"] as! String //1.将字符串转换为类 //默认情况下命名空间就是项目的名称,但是命名空间名称是可以修改的 let cls:AnyClass? = NSClassFromString(ns + "." + childControllerName) //2通过类创建对象 //将AnyClass转换为指定的类型 let vcCls = cls as! UIViewController.Type //通过class创建对象 let vc = vcCls.init() //设置控制器tabar对应的数据 vc.tabBarItem.image = UIImage(named: imageName) vc.tabBarItem.selectedImage = UIImage(named: imageName + "_highlighted") vc.title = title //2.给控制器包装一个导航栏控制器 let nav = UINavigationController() nav.addChildViewController(vc) //3.将导航栏控制器添加到当前控制器上 addChildViewController(nav) } /** 设置加号按钮位置 */ private func setupComposeBtn(){ // 0.添加到tabBar上 tabBar.addSubview(composeBtn) // 1.计算按钮宽度 let width = tabBar.bounds.width / CGFloat(viewControllers!.count) // 2.创建按钮frame let rect = CGRect(x: 0, y: 0, width: width, height: tabBar.bounds.height) // 3.设置按钮frame和偏移位 composeBtn.frame = CGRectOffset(rect, width * 2, 0) }

 

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇ios Swift 中文学习手册 下一篇iOS开发--Swift RAC响应式编程初探

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目