SwipeVC
SwipeVC lib 创建用于帮助您通过左右滑动简单地管理视图控制器。您可以通过点击项(如 UITabBar)为管理这些屏幕注入 tabBar。NavigationBar 为您提供了改变标签栏项和标题的酷炫动画的可能,这可以简单地自定义。要添加 NavigationBar,您只需将其注入。为了提供定制设计(内容间距、标签栏间距、视图控制器间距)的可能,我们添加了不同类型的间距。
CocoaPods
对于 SwipeVC,在 Podfile 中使用以下条目
pod 'SwipeVC'
然后运行 pod install
。
在任何想使用 SwipeVC 的文件中,不要忘记用 import SwipeVC
导入框架。
使用方法
要使用 SVCSwipeViewController,您可以从 SVCSwipeViewController 扩展您的 ViewController,并将视图控制器添加到 viewControllers 属性。
final class ExampleSwipeViewController: SVCSwipeViewController {
override func viewDidLoad() {
super.viewDidLoad()
addViewControllers()
}
private func addViewControllers() {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let firstViewController = storyboard.instantiateViewController(withIdentifier: "FirstViewController") as! FirstViewController
let secondViewController = storyboard.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
let thirdViewController = storyboard.instantiateViewController(withIdentifier: "ThirdViewController") as! ThirdViewController
viewControllers = [firstViewController, secondViewController, thirdViewController]
}
}
要使用 tabBar,您应注入 tabBar 属性。您可以使用 SVCTabBar 或您自己的实现。您可以通过设置 tabBarType 属性(.top 或 .bottom)来更改 SVCSwipeViewController 中标签栏的位置。SVCSwipeViewController 有 contentInsets、tabBarInsets、viewControllersInsets 属性,如果需要,可以自定义不同间距。
final class ExampleSwipeViewController: SVCSwipeViewController {
override func viewDidLoad() {
super.viewDidLoad()
tabBarInjection()
}
private func tabBarInjection() {
tabBarType = .top
let defaultTabBar = SVCTabBar()
// Init first item
let firstItem = SVCTabItem(type: .system)
firstItem.imageViewAnimators = [SVCTransitionAnimator(transitionOptions: .transitionFlipFromTop)]
firstItem.setImage(UIImage(named: "ic_location_menu_normal")?.withRenderingMode(.alwaysOriginal), for: .normal)
firstItem.setImage(UIImage(named: "ic_location_menu_selected")?.withRenderingMode(.alwaysOriginal), for: .selected)
// Init second item
let secondItem = SVCTabItem(type: .system)
secondItem.imageViewAnimators = [SVCTransitionAnimator(transitionOptions: .transitionFlipFromRight)]
secondItem.setImage(UIImage(named: "ic_users_menu_normal")?.withRenderingMode(.alwaysOriginal), for: .normal)
secondItem.setImage(UIImage(named: "ic_users_menu_selected")?.withRenderingMode(.alwaysOriginal), for: .selected)
// Init third item
let thirdItem = SVCTabItem(type: .system)
thirdItem.imageViewAnimators = [SVCTransitionAnimator(transitionOptions: .transitionFlipFromBottom)]
thirdItem.setImage(UIImage(named: "ic_media_menu_normal")?.withRenderingMode(.alwaysOriginal), for: .normal)
thirdItem.setImage(UIImage(named: "ic_media_menu_selected")?.withRenderingMode(.alwaysOriginal), for: .selected)
defaultTabBar.items = [firstItem, secondItem, thirdItem]
// inject tab bar
tabBar = defaultTabBar
}
}
项动画
您可以为SVCTabItem使用不同的动画器。SwipeVC具有SVCBounceAnimator()、SVCRotationAnimator()、SVCImagesAnimator()、SVCTransitionAnimator()...
let tabBarItem = SVCTabItem(type: .system)
tabBarItem.imageViewAnimators = [SVCBounceAnimator()]
tabBarItem.titleLabelAnimators = [SVCTransitionAnimator(transitionOptions: .transitionFlipFromBottom)]
或者创建自己的动画器,只需实现SVCAnimator协议。
open class SomeCustomAnimator: SVCAnimator {
open func select(onView view: UIView) {
// Some select animation
}
open func deselect(onView view: UIView) {
// Some deselect animation
}
}
// And simple set animator to your item(image or title)
tabBarItem.imageViewAnimators = [SomeCustomAnimator()]
tabBarItem.titleViewAnimators = [SomeCustomAnimator()]
要使用可移动视图,您应设置"defaultTabBar.movableView.isHidden = false"。您可以根据需要自定义movableView(宽度、高度、弹跳、附加)。
func tabBarInjection() {
let defaultTabBar = SVCTabBar()
showMovableView(onDefaultTabBar: defaultTabBar)
// Add some items ...
// inject tab bar
tabBar = defaultTabBar
}
func showMovableView(onDefaultTabBar defaultTabBar: SVCTabBar) {
defaultTabBar.movableView.isHidden = false
defaultTabBar.movableView.backgroundColor = ExampleSwipeViewController.defaultStyleColor
defaultTabBar.movableView.bouncing = 0.5
defaultTabBar.movableView.width = 64
defaultTabBar.movableView.height = 1
defaultTabBar.movableView.attach = .bottom
}
示例目标
您可以在示例目标中检查SwipeVC的更多功能。
许可证
SwipeVC采用MIT许可证发布。有关更多信息,请参阅< loneliness.txt。