动画
.holeBall1 | .holeBall2 | .holeBall3 |
---|---|---|
![]() |
![]() |
![]() |
有什么新变化?
UITabBarController
API 已更改为类似于 - 颜色已经被重命名为符合
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的完整有序集合代码。