SETabView 2.0.0

SETabView 2.0.0

Srivinayak Chaitanya Eshwa 维护。



SETabView 2.0.0

CI Status Version License Platform

动画

.holeBall1 .holeBall2 .holeBall3

有什么新变化?

API 已更改为类似于 UITabBarController

  • 颜色已经被重命名为符合 UITabBar 中指定的颜色
  • 颜色现在可以像之前一样集中设置(函数参数名称已更改以反映更改后的颜色名称),或者单独设置
  • 颜色现在可以在任何时候更改
  • 任何时间的视图控制器
  • 动画类型可以在任何时候更改,通过设置 animationType 属性来在可用的动画之间切换!
  • animationDuration 不能再更改了

错误修复

  • 解决了导致 holeBall3 在较大屏幕尺寸下行为异常的错误
  • 解决 glitchy 横向模式的行为

添加了许多性能优化,以便我们的库不会使您的应用程序变慢。太好了!

需求

  • Swift 5+
  • iOS 11.0+
  • Swift工具版本5.0+(用于Swift包管理器)

集成

CocoaPods

SETabView 可通过CocoaPods获取。要安装,只需将以下行添加到您的 Podfile 中

pod 'SETabView'

如果当前安装的不是最新版本(2.0.0),请更新 pod。

pod update 'SETabView'

Swift 包管理器

Swift 包管理器是一个用于自动化Swift代码发布的工具,它集成在swift编译器中。

一旦您设置了Swift包,只需将其添加到您的 Package.swift 中的 dependencies 值即可将 SETabView 作为依赖项添加。

dependencies: [
.package(url: "https://github.com/eshwavin/SETabView.git", .upToNextMajor(from: "2.0.0"))
]

直接包含源文件

直接下载并将文件夹中的文件添加到您Xcode项目。在这种情况下,您应该跳过

import SETabView

使用说明中的内容。

使用和自定义

SETabView 导入父视图控制器及任何子视图控制器

import SETabView

从您的标签视图控制器继承 SETabViewController

class MyCustomTabViewController: SETabViewController {

   override func viewDidLoad() {
    super.viewDidLoad()

  }
}

设置视图控制器和颜色

使用 setViewControllers(_:) 方法或通过直接设置 viewControllers 属性来设置视图控制器

通过调用 setTabColors(backgroundColor:ballColor:tintColor:unselectedItemTintColor:barTintColor:) 方法或简单设置相应的颜色来自定义外观

class ViewController: SEViewController {
    
    override func viewDidLoad() {
      super.viewDidLoad()
      
      // set tab bar look collectively
      setTabColors(backgroundColor: UIColor.white, ballColor: UIColor.white, tintColor: UIColor.black, unselectedItemTintColor: UIColor.red, barTintColor: .clear)
      
      // set the view controllers
      setViewControllers(getViewControllers(), initialSelectedTabIndex: 0, animationType: .holeBall3)

    }

    private func getViewControllers() -> [UIViewController] {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        
        return [
            storyboard.instantiateViewController(withIdentifier: "firstVC"),
            storyboard.instantiateViewController(withIdentifier: "secondVC"),
            storyboard.instantiateViewController(withIdentifier: "thirdVC"),
            storyboard.instantiateViewController(withIdentifier: "fourthVC"),
            storyboard.instantiateViewController(withIdentifier: "fifthVC")
        ]
    }   
}

提供标签栏的图像

子视图控制器可以符合 SETabItemProvider 协议。使用 seTabImage 返回视图控制器的 UITabBarItem

或者您可以直接设置视图控制器上的 tabBarItem 属性,就像在使用 UITabBarController 一样

class FirstViewController: UIViewController, SETabItemProvider {

    var seTabBarItem: UITabBarItem? {
        return UITabBarItem(title: "", image: UIImage(named: "first"), tag: 0)
    }

    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

以编程方式设置选中索引

selectedTabIndex = 3

限制

  • 最多5个标签

示例

要运行示例项目,首先从仓库克隆,然后在示例目录中运行 pod install

计划改进

  • 更多 UITabBarController 操作
  • 通过引入一个更多标签页来增加对标签数量的支持
  • 徽章
  • 性能改进

作者

Srivinayak Chaitanya Eshwa, [email protected]

许可证

SETabView符合MIT许可证。有关更多信息,请参阅LICENSE文件。SETabView使用了来自swift-collections的完整有序集合代码。

致谢

动画灵感

图标