我正在尝试让这个pod在我的项目中运行,而我却一直在理解这个位是如何工作的:
https://github.com/uacaps/PageMenu
// Create variables for all view controllers you want to put in the
// page menu, initialize them, and add each to the controller array.
// (Can be any UIViewController subclass)
// Make sure the title property of all view controllers is set
// Example:
var controller : UIViewController = UIViewController(nibName: "controllerNibName", bundle: nil)
controller.title = "SAMPLE TITLE"
controllerArray.append(controller)
我已经看到了一些事情,说我需要使用我在故事板中设置的故事板ID来初始化视图控制器,但是当我尝试做一些像
这样的事情时let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("someViewController") as! UIViewController
self.presentViewController(vc, animated: true, completion: nil)
但说实话,我不知道在何处/何时放置/如果那甚至是什么
我们的想法是为页面菜单制作一个视图控制器数组,并在顶部显示标签栏,但我不确定如何从故事板中的视图制作该数组。
答案 0 :(得分:4)
如果您正在使用storyboardIds进行viewcontroller实例化,请修改上述答案。
var pageMenu: CAPSPageMenu?
override func viewDidLoad() {
super.viewDidLoad()
setupPages()
}
func setupPages() {
let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil)
var controllerArray: [UIViewController] = []
let firstVC = storyboard.instantiateViewControllerWithIdentifier("FirstViewControlleridentifier") as! FirstViewController
firstVC.title = "FirstOne"
let secondVC = storyboard.instantiateViewControllerWithIdentifier("SecondViewControlleridentifier") as! SecondViewController
secondVC.title = "Another One"
let thirdVC = storyboard.instantiateViewControllerWithIdentifier("ThirdViewControlleridentifier") as! ThirdViewController
thirdVC.title = "And Another One"
controllerArray.append(firstVC)
controllerArray.append(secondVC)
controllerArray.append(thirdVC)
// a bunch of random customization
let parameters: [CAPSPageMenuOption] = [
.ScrollMenuBackgroundColor(UIColor.quotesBackgroundColor()),
.ViewBackgroundColor(UIColor.quotesBackgroundColor()),
.SelectionIndicatorColor(UIColor.peterRiverColor()),
.BottomMenuHairlineColor(UIColor(red: 70.0/255.0, green: 70.0/255.0, blue: 80.0/255.0, alpha: 1.0)),
.MenuHeight(40.0),
.MenuItemWidth(100.0),
.CenterMenuItems(true),
.SelectedMenuItemLabelColor(UIColor.blueColor())
]
pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRectMake(0.0, 0.0, self.view.frame.width, self.view.frame.height), pageMenuOptions: parameters)
self.view.addSubview(pageMenu!.view)
}
答案 1 :(得分:3)
更新了 David
的Swift-3版本Swift-3的Podfile pod' PageMenu' ,:git => ' https://github.com/orazz/PageMenu'
func setupPages() {
var controllerArray: [UIViewController] = []
let firstVC = FirstVC()
firstVC.title = "First"
let secondVC = SecondVC()
secondVC.title = "Second"
let thirdVC = ThirdVC()
thirdVC.title = "Third"
controllerArray.append(firstVC)
controllerArray.append(secondVC)
controllerArray.append(thirdVC)
let parameters: [CAPSPageMenuOption] = [
.scrollMenuBackgroundColor(.blue),
.viewBackgroundColor(.white),
.selectionIndicatorColor(.white),
.bottomMenuHairlineColor(.white),
.menuHeight(40.0),
.menuItemWidth(self.view.frame.width/3),
.centerMenuItems(true),
.selectedMenuItemLabelColor(.white),
.unselectedMenuItemLabelColor(.white),
.menuMargin(0.0)
]
pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRect(x:0,y:64,width:self.view.frame.width ,height:self.view.frame.height) , pageMenuOptions: parameters)
self.view.addSubview(pageMenu!.view)
}
答案 2 :(得分:2)
你走了。 PageMenu非常酷,超级可定制。玩得开心。希望这可以帮助。如果您遇到任何其他问题,请告诉我。
var pageMenu: CAPSPageMenu?
override func viewDidLoad() {
super.viewDidLoad()
setupPages()
}
func setupPages() {
var controllerArray: [UIViewController] = []
let firstVC = FirstViewController()
firstVC.title = "FirstOne"
let secondVC = SecondViewController()
secondVC.title = "Another One"
let thirdVC = ThirdViewController()
thirdVC.title = "And Another One"
controllerArray.append(firstVC)
controllerArray.append(secondVC)
controllerArray.append(thirdVC)
// a bunch of random customization
let parameters: [CAPSPageMenuOption] = [
.ScrollMenuBackgroundColor(UIColor.quotesBackgroundColor()),
.ViewBackgroundColor(UIColor.quotesBackgroundColor()),
.SelectionIndicatorColor(UIColor.peterRiverColor()),
.BottomMenuHairlineColor(UIColor(red: 70.0/255.0, green: 70.0/255.0, blue: 80.0/255.0, alpha: 1.0)),
.MenuHeight(40.0),
.MenuItemWidth(100.0),
.CenterMenuItems(true),
.SelectedMenuItemLabelColor(UIColor.blueColor())
]
pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRectMake(0.0, 0.0, self.view.frame.width, self.view.frame.height), pageMenuOptions: parameters)
self.view.addSubview(pageMenu!.view)
}
答案 3 :(得分:1)
更新的Swift-3版 Shrawn 兼容iPhone-X模拟器
func setupPages() {
var controllerArray: [UIViewController] = []
let firstVC = FirstVC()
firstVC.title = "First"
let secondVC = SecondVC()
secondVC.title = "Second"
let thirdVC = ThirdVC()
thirdVC.title = "Third"
controllerArray.append(firstVC)
controllerArray.append(secondVC)
controllerArray.append(thirdVC)
let parameters: [CAPSPageMenuOption] = [
.scrollMenuBackgroundColor(.blue),
.viewBackgroundColor(.white),
.selectionIndicatorColor(.white),
.bottomMenuHairlineColor(.white),
.menuHeight(40.0),
.menuItemWidth(self.view.frame.width/3),
.centerMenuItems(true),
.selectedMenuItemLabelColor(.white),
.unselectedMenuItemLabelColor(.white),
.menuMargin(0.0)
]
pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRect(x:0,y:(self.navigationController?.navigationBar.frame.maxY)!,width:self.view.frame.width ,height:self.view.frame.height), pageMenuOptions: parameters)
self.view.addSubview(pageMenu!.view)}
答案 4 :(得分:0)
或者你可以使用这个回购。它对于RnD来说简单易懂。 (Swift 3代码)
https://github.com/lakshikabhardwaj/LBViewControllerCollection
let mainViewController = CPPageMenuVC(nibName: "CPPageMenuVC", bundle: nil)
let pageMenuarray :[PageModal] = [PageModal(pageTitle: "Cat", pageVC: cpCatVC),PageModal(pageTitle: "Cow", pageVC: cowCX),PageModal(pageTitle: "Chat", pageVC: cpCatVC),PageModal(pageTitle: "ElephantElephant", pageVC: elephantVC)]
pageMenuVC.pageArray = pageMenuarray