测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布上次发布 | 2016年5月 |
SPM支持SPM | ✗ |
由 PagingMenuController-Clickbalance 维护。
这个库受到了 PageMenu 的启发
请查看 更新日志 以获取详细信息
defaultPage: Int
scrollEnabled: Bool
backgroundColor: UIColor
selectedBackgroundColor: UIColor
textColor: UIColor
selectedTextColor: UIColor
font: UIFont
selectedFont: UIFont
menuPosition: MenuPosition
public enum MenuPosition {
case Top
case Bottom
}
menuHeight: CGFloat
menuItemMargin: CGFloat
menuItemDividerImage: UIImage?
animationDuration: NSTimeInterval
deceleratingRate: CGFloat
menuSelectedItemCenter: Bool
menuDisplayMode: MenuDisplayMode
public enum MenuDisplayMode {
case Standard(widthMode: MenuItemWidthMode, centerItem: Bool, scrollingMode: MenuScrollingMode)
case SegmentedControl
case Infinite(widthMode: MenuItemWidthMode, scrollingMode: MenuScrollingMode) // Requires three paging views at least
}
public enum MenuItemWidthMode {
case Flexible
case Fixed(width: CGFloat)
}
public enum MenuScrollingMode {
case ScrollEnabled
case ScrollEnabledAndBouces
case PagingEnabled
}
如果 centerItem
为 true,则选中菜单项始终位于中心
如果 MenuScrollingMode
为 ScrollEnabled
或 ScrollEnabledAndBounces
,则菜单视图允许滚动以选择任何菜单项;如果 MenuScrollingMode
为 PagingEnabled
,则应逐个选择菜单项
public var menuItemMode = MenuItemMode.Underline(height: 3, color: UIColor.whiteColor(), horizontalPadding: 0, verticalPadding: 0)
public enum MenuItemMode {
case None
case Underline(height: CGFloat, color: UIColor, horizontalPadding: CGFloat, verticalPadding: CGFloat)
case RoundRect(radius: CGFloat, horizontalPadding: CGFloat, verticalPadding: CGFloat, selectedColor: UIColor)
}
public var lazyLoadingPage: LazyLoadingPage = .Three
public enum LazyLoadingPage {
case One // Currently sets false to scrollEnabled at this moment. Should be fixed in the future.
case Three
}
import PagingMenuController
以在文件中使用PagingMenuController。
let viewController = self.storyboard?.instantiateViewControllerWithIdentifier("ViewController") as! ViewController
viewController.title = "Menu title"
let viewControllers = [viewController]
let pagingMenuController = self.childViewControllers.first as! PagingMenuController
let options = PagingMenuOptions()
options.menuHeight = 60
options.menuDisplayMode = .Standard(widthMode: .Flexible, centerItem: true, scrollingMode: .PagingEnabled)
pagingMenuController.setup(viewControllers: viewControllers, options: options)
ContainerView
,并将 PagingMenuController
设置为嵌入式视图控制器的类请参阅演示项目中的 PagingMenuControllerDemo
目标以获取更多详细信息
let viewController = UIViewController()
viewController.title = "Menu title"
let viewControllers = [viewController]
let options = PagingMenuOptions()
options.menuItemMargin = 5
options.menuDisplayMode = .SegmentedControl
let pagingMenuController = PagingMenuController(viewControllers: viewControllers, options: options)
self.addChildViewController(pagingMenuController)
self.view.addSubview(pagingMenuController.view)
pagingMenuController.didMoveToParentViewController(self)
有关更多信息,请参阅演示项目中的PagingMenuControllerDemo2
目标
pagingMenuController.delegate = self
func willMoveToPageMenuController(menuController: UIViewController, previousMenuController: UIViewController) {
}
func didMoveToPageMenuController(menuController: UIViewController, previousMenuController: UIViewController) {
}
// if you pass a nonexistent page number, it'll be ignored
pagingMenuController.moveToMenuPage(1, animated: true)
再次调用带有新选项的setup
方法。它会创建一个新的分页菜单控制器。别忘了清理子视图控制器中的属性。
iOS8+
Swift 2.0+
Xcode 7.3+
请使用Swift 1.2的0.8.0标签
将Pod/Classes
目录中的所有文件复制到您的项目中。
PagingMenuController可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。