SwipeVC 0.2.4

SwipeVC 0.2.4

Panevnyk ValdPanevnyk Vlad 维护。



SwipeVC 0.2.4

  • 作者:
  • panevnyk

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。