一个Swift写的快速搭建UITabBarController+UINavigationController的项目框架

简介

  • 实现语言:Swift(3.0)
  • 当前版本:0.0.2

该框架主要解决每次创建新项目的时候都要重新搭建项目框架的问题。
框架文件如下:

--- FZHProjectInitializer
 --- FZHTabBar.swift 
 --- FZHTabBarButton.swift   
 --- FZHNavigationController.swift   
 --- FZHTabBarViewController.swift复制代码
  • FZHTabBarButton.swift 中重写UIButton,改变title和iamgeView的布局,设置UIButton选中时和未选中时的字体颜色
  • FZHTabBar.swift 中重写UIView,设置根据传入的控制器数量自动生成button的frame
  • FZHNavigationController.swift 中,通过重写 pushViewControllerpopViewController 方法来实现隐藏自动TabBar
  • FZHTabBarViewController.swift 中,实现 setupChildVC(_ childVC: UIViewController,title: String,imageName: String,selectImageName: String) 方法来添加子控制器

该框架的功能

  • 快速实现搭建传统框架: UITabBarController + UINavigationController
  • 当从导航栏的主页面push到子页面时,自动隐藏TabBar(现在有两种隐藏方式:1.直接hidden,类似于微信;2.有动画效果,类似于京东)
  • 可以通过selectColornormalColor自定义TabBar按钮的选中状态和未选中的颜色

集成到项目

  • Cocoapods
    pod 'FZHProjectInitializer'复制代码

使用示例

Code:

let fzhTabBar = FZHTabBarViewController()
fzhTabBar.selectColor = UIColor.red
fzhTabBar.normalColor = UIColor.brown
let firstVC = UIViewController()
let secondVC = UIViewController()
let thirdVC = UIViewController()
let fourVC = UIViewController()  

fzhTabBar.setupChildVC(firstVC, title: "first", imageName: "", selectImageName: "")
fzhTabBar.setupChildVC(secondVC, title: "second", imageName: "", selectImageName: "")
fzhTabBar.setupChildVC(thirdVC, title: "third", imageName: "", selectImageName: "")
fzhTabBar.setupChildVC(fourVC, title: "four", imageName: "", selectImageName: "")
window?.rootViewController = fzhTabBar复制代码

结束语

这是我的第一个开源框架,可能存在很多问题,希望大家可以在使用的过程中提出自己发现的问题,如果大家有什么后续想加的功能可以在github提issue,我会尽自己最大的努力来实现。如果大家觉得该框架给大家提供了一点便利的话,还请点个star支持一下!!!

该项目的github地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ESTabBarController 是一个高度自定义的 TabBarController 组件,继承自 UITabBarController,可轻松自定义 UI 样式,添加动画等。功能1、支持默认样式如果直接使用ESTabBarController进行初始化,你会得到与UITabBarController完全相同的仿系统样式UITabBarController样式:ESTabBarController仿系统样式:2、支持带有"More"的默认样式使用ESTabBarController进行初始化,若item大于最大显示数量则显示"More",样式与UITabBarController一致带有"More"的UITabBarController样式:带有"More"的ESTabBarController样式:3、支持UITabBarItem和ESTabBarItem混合可以任意设置tabbar的items,支持即包含UITabBarItem,同时也包含ESTabBarItemESTabBarUITabBar混合样式:带有'More'的ESTabBarUITabBar混合样式:4、支持UIKit属性支持UITabBarControllerUITabBarUITabBarItem的大部分api属性,使原有代码无需任何修改即可无缝迁移到ESTabBarController支持UITabBarController的selectedIndex属性的实现:5、支持与UINavigationController任意嵌套通常在使用UITabBarController过程中,会存在两种比较常见的层级处理方式:第一种:├── UITabBarController└──── UINavigationController└────── UIViewController└──────── SubviewControllers第二种:├── UINavigationController└──── UITabBarController└────── UIViewController└──────── SubviewControllers第一种情况在push子视图的时候需要设置 hidesBottomBarWhenPushed = true , 第二种则不需要在ESTabBarController中,通过添加Container视图到UITabBar的方式来兼容这两种层级处理方式。6、支持自定义使用ESTabBarController可以实现:自定义选中颜色和样式添加选中时的动画效果自定义Item的背景颜色添加高亮时的动画效果添加一些动画暗示用户点击等等...... 7、支持自定义按钮大小,支持自定义点击事件ESTabBarController支持自定义按钮的大小,你可以轻松定制不规则大小的tab按钮。当按钮frame大于TabBar时,通过HitTest方法使其超出TabBar区域点击仍然有效。 另外,ESTabBarController能够自定义点击事件,并通过一个block回调给上层处理。中间带有较大按钮样式:带有特殊提醒框样式:自定义按钮点击事件:8、支持默认通知样式如果直接使用ESTabBarController进行初始化,你会得到与UITabBarController完全相同的仿系统通知样式UITabBarController样式:ESTabBarController仿系统样式:9、支持自定义通知样式使用ESTabBarController可以实现:自定义提醒动画自定义提醒样式等等...... 10、支持Lottie通过自定义ContentView,能够添加Lottie的LAAnimationView到Item支持环境Xcode 8 or lateriOS 8.0 or laterARCSwift 3 or later

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值