iOS 自定制TabBar(中间是一个大按钮)
来源:互联网 发布:java red5 编辑:程序博客网 时间:2024/03/28 18:04
许多APP中都有这个效果,点击中间的大按钮就会present一个页面出来,关闭这个页面就返回到之前的页面
这个功能看起来很神奇,其实实现起来也相当简单
实现方式:创建一个类继承自UITabBar,在view上添加一个大的按钮 放到中间,然后需要写一个代理 用来实现按钮的点击事件
效果如下图:github地址https://github.com/ColdChains/LAXTabBarController
这是用Swift写的demo
一、创建自定制TabBar的类
二、创建协议,声明点击按钮的事件
三、在按钮点击事件里调用代理方法
//// LAXTabBar.swift// MeiLiTV//// Created by 冰凉的枷锁 on 2017/3/9.// Copyright © 2017年 冰凉的枷锁. All rights reserved.//import UIKitprotocol LAXTabBarDelegate : UITabBarDelegate { func tabBarDidClickPlusButton(_: LAXTabBar)}class LAXTabBar: UITabBar { init() { super.init(frame: CGRect.init(x: 0, y: ScreenHeight - 49, width: ScreenWidth, height: 49)) plusButton.center = CGPoint.init(x: ScreenWidth / 2, y: 49 - plusButton.bounds.size.height / 2) self.addSubview(plusButton) } convenience init(delegate: LAXTabBarDelegate) { self.init() self.tabbarDelegate = delegate } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } lazy var plusButton: UIButton = { let btn = UIButton.init(frame: CGRect.init(x: 0, y: 0, width: 55, height: 55)) btn.setImage(UIImage.init(named: PlusButtonImage), for: .normal) btn.addTarget(self, action: #selector(plusButtonAction(sender:)), for: .touchUpInside) return btn }() var tabbarDelegate: LAXTabBarDelegate? func plusButtonAction(sender: UIButton) { self.tabbarDelegate?.tabBarDidClickPlusButton(self) }}
四、创建一个类,继承UITabBarController,设置tabbar为自定制的tabbar
五、实现协议方法
class RootViewController: UITabBarController, LAXTabBarDelegate { override func viewDidLoad() { super.viewDidLoad() let tabBar = LAXTabBar.init(delegate: self) self.setValue(tabBar, forKey: "tabBar") self.tabBar.barTintColor = TabBarColor self.tabBar.tintColor = OrangeColor if #available(iOS 10.0, *) { self.tabBar.unselectedItemTintColor = WhiteColor } else { // Fallback on earlier versions } } func tabBarDidClickPlusButton(_: LAXTabBar) { let vc = LiveViewController() self.present(vc, animated: true, completion: nil) }}
最后在控制器中添加五个个页面,第三个item只是一个占位的作用,不要设置title和image。这里的代码我就不写了,想看效果的去github上下载吧https://github.com/ColdChains/LAXTabBarController
0 0
- iOS 自定制TabBar(中间是一个大按钮)
- iOS tabbar中间添加按钮
- iOS tabbar中间添加按钮
- ios定制中间突出的tabBar
- ios定制中间突出的tabBar
- Swift-自定制带有特殊按钮TabBar
- iOS 中间按钮突出的tabbar
- iOS Tabbar中间添加凸起按钮
- iOS 模态到一个有自定制Tabar的页面,tabbar消失的问题
- ios:点击tabbar中间按钮弹出菜单(swift 3实现)
- iOS 自定义tabbar中间按钮 超简单方法
- iOS Tabbar中间添加凸起可旋转按钮
- iOS Tabbar上增加一个自定义按钮
- iOS之UI TabBarcontroller----自定义tabBar/改变tabBar中间按钮的样式(一)
- 自定义TabBar条,实现重写TabBar的TabBarItem,然后在中间额外加一个按钮
- 猫猫学iOS 之微博项目实战(4)微博自定义tabBar中间的添加按钮
- iOS 开源一个高度可定制支持各种动画效果,支持单击双击,小红点,支持自定义不规则按钮的tabbar
- iOS 纯代码定制 UINavigationController导航栏 左按钮又按钮以及中间的标题
- eventBus注意事项
- poj 2777 Count Color (线段树)
- PPAPI 插件编写
- C++ stringstream
- git flow 常用命令
- iOS 自定制TabBar(中间是一个大按钮)
- 17-03-05
- opencv运行出现错误ffmpeg
- Jaxb2 实现JavaBean与xml互转
- 测试
- Java源码分析之HashMap
- Ubuntu Kylin 16.04下安装samba
- jquery动态设置年、月,前后30年
- Maven简介(三)——profile介绍