SwipeViewController
SwipeViewController 是什么?
SwipeViewController 允许您修改导航栏并实现 'Swipe Buttons',用户可以使用这些按钮切换页面,同时用户可以轻松地看到他当前所在的页面。SwipeViewController 是 Objective-C 项目 RKSwipeBetweenViewControllers 的修改版本。我将语法转换为了 Swift,并增加了一些功能和其他一些小的更改。
安装
CocoaPods
SwipeViewController 通过 CocoaPods 提供。要安装,只需将以下行添加到您的 Podfile 中即可
pod 'SwipeViewController'
Carthage
如果您使用Carthage,请添加以下内容到您的Cartfile
github "fortmarek/SwipeViewController"
手动
将Pod/Classes/SwipeViewController.swift文件包含到您的项目中。
用法
您可以像这样简单地初始化SwipeViewController
let myViewControllerOne = UIViewController()
let myViewControllerTwo = UIViewController()
let navigationController = SwipeViewController(pages: [myViewControllerOne, myViewControllerTwo])
要设置按钮的标题,只需更改每个页面的标题即可
myViewControllerOne.title = "Recent"
这应该在将视图控制器传递给SwipeViewController
的init方法之前完成。
要指定哪个视图控制器应该首先选中
// Selecting second view controller as the first
swipeViewController.startIndex = 1
导航栏
要更改NavigationBar的颜色
setNavigationColor(UIColor.blueColor())
您还可以包含barButtonItems,就像您通常会做的那样创建UIBarButtonItem,然后按如下方式使用它
let barButtonItem = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: nil)
leftBarButtonItem = barButtonItem
请注意,这应该在viewDidLoad
中完成( Definitely 在视图出现之前)。
滑动按钮
有两种不同的模式 - 或者每个按钮在每侧都有相同的空间,不依赖于标签大小(适用于奇数)
swipeViewController.equalSpaces = true
或者每个侧面的空间大小不同,取决于标签大小(适用于偶数,标签总是居中)。
swipeViewController.equalSpaces = false
您也可以使用这些属性自定义按钮
buttonFont, buttonColor, selectedButtonColor
要更改侧面和底部的偏移量
swipeViewController.offset = 40 // offset from the side
swipeViewController.bottomOffset = 5 // offset from the bottom
您可以使用图片作为标签而不是标题。首先使用SwipeButtonWithImage结构初始化按钮
let buttonOne = SwipeButtonWithImage(image: UIImage(named: "Hearts"), selectedImage: UIImage(named: "YellowHearts"), size: CGSize(width: 40, height: 40))
swipeViewController.buttonsWithImages = [buttonOne, buttonTwo, buttonThree]
SelectionBar
要自定义选择栏,可以更改以下属性
selectionBarHeight, selectionBarWidth, selectionBarColor
其他自定义
如果你还想进行更多自定义,可以直接进入 SwipeViewController 类文件,但请注意。
作者
fortmarek, [email protected]
许可协议
SwipeViewController 基于 MIT 许可协议。有关更多信息,请参阅 LICENSE 文件。