XYXDomeTabBarController 1.3.0

XYXDomeTabBarController 1.3.0

Teresa维护。




XYXDomeTabBarController

使用 Swift 编写的轻量级 DomeTabBar,凸起按钮可以任意设定一个位置。(已适配 iPhoneX)

gif

可以使用 cocospod 管理到项目中

target 'MyApp' do
  use_frameworks!
  pod 'XYXDomeTabBarController'
end

框架一共有三个文件,分别是:

  • XYXDomeTabBarController 继承自 UITabBarController,在这里初始化所有 ChildViewController
  • XYXDomeTabBar 用于自定义凸起按钮
  • XYXShadeView 用于自定义凸起按钮的点击后操作,也可以不使用此类.

简单又灵活的使用方式

  1. 首先使用自定义的类,继承于 XYXDomeTabBarController
class YourViewController: XYXDomeTabBarController {}
  1. 在 init 方法中初始化 tab。这样设定是生成普通的 TabBar
convenience init() {
        self.init(nibName: nil, bundle: nil)
        let controllers = [UIViewController(),UIViewController(),UIViewController()]  //TabBar对应的几个Controller
        let titleItems = ["A","B","C"]              //TabbarItem名称
        let imageItems = ["item1","item2","item3"]  //TabbarItem图片
        for idx in 0...controllers.count-1 {
            addChildViewController(controllers[idx], title: titleItems[idx], imageName: imageItems[idx], selectedImageName: selectedItems[idx])
        }
}
  1. 使用两个方法可以设定为带有突出按钮的 TabBarController
convenience init() {
      //***
      self.domeIndex = 2  //设定凸起按钮的位置,从0开始计数
      //self.domeBar.domeButtonSize = CGSize(width: 50, height: 50) //设定凸起按钮的大小
}
  1. 可以通过对 domeButtonClicked 方法的重写,来自定义当突出按钮被点击时的处理方式
    override func domeButtonClicked(_ sender: UIButton) {
        print("xxx 被点击了")
    }
需注意的是:
本Demo并不对domeIndex进行越界检查,调用时请根据自己添加的chilViewController的个数来确定domeIndex数值.
以及,当domeIndex未设定,而设定了domeButtonSize, 则默认domeIndex=0.

domeIndex = 0 时:👇

domeIndex = 0

domeIndex = 1 时:👇

imdomeIndex = 1

domeIndex = 2 时:👇

domeIndex = 2

domeIndex = 3 时:👇

domeIndex = 3

domeIndex = 4 时:👇

domeIndex = 4

需要注意的问题:

本项目不适合次级页面需要使用 hidesBottomBarWhenPushed 方法隐藏 TabBar 的项目使用。如果使用,会导致 domeItem 不会跟随隐藏。(测试 SDK 为 iOS11.3)