ios - 当我们按下菜单点击时,CAPSPageMenu 获取索引
问题描述
我添加了一个 CAPSPageMenu。当前索引始终为 0。我想知道我点击的菜单项的索引。
我尝试了下面的代码,但是当我将断点添加到这个委托方法时,它没有被调用。
我正在使用这个库:https ://github.com/PageMenu/PageMenu/blob/master/README.md
class firstVC: UIViewController,CAPSPageMenuDelegate {
var pageMenu : CAPSPageMenu?
override func viewDidLoad() {
super.viewDidLoad()
pageMenu?.delegate=self
}
func willMoveToPage(_ controller: UIViewController, index: Int){
print(index)
}
func didMoveToPage(_ controller: UIViewController, index: Int){
print(index)
}
}
更新 :
@IBOutlet var optionView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
var menuTitleFont: UIFont?
if UIScreen.main.bounds.size.height == 568 {
menuTitleFont = UIFont(name: "roboto-Bold", size: 10.0)
}
else {
menuTitleFont = UIFont(name: "roboto-Bold", size: 12.0)
}
let parameters: [CAPSPageMenuOption] = [
.scrollMenuBackgroundColor(UIColor.yellow),
.viewBackgroundColor(UIColor.black),
.selectionIndicatorColor(UIColor.white),
.bottomMenuHairlineColor(UIColor.lightGray),
.selectedMenuItemLabelColor(UIColor.white),
.unselectedMenuItemLabelColor(UIColor.lightGray),
//.menuItemFont(12),
.menuHeight(50.0),
.menuItemWidth(self.view.frame.size.width/10 + 30),
.centerMenuItems(true)
]
print(pageMenu)
pageMenu!.delegate = self
var controllerArray = [UIViewController]()
if let AllVc = self.storyboard?.instantiateViewController(withIdentifier:"AllVc") {
AllVc.title = "AllVc"
controllerArray.append(AllVc)
}
if let baseVc = self.storyboard?.instantiateViewController(withIdentifier:"baseVc") {
baseVc.title = "baseVc"
controllerArray.append(baseVc)
}
pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRect(x: 0.0, y:0.0, width:view.frame.width, height:self.view.frame.height), pageMenuOptions: parameters)
self.addChildViewController(pageMenu!)
self.optionView.addSubview(pageMenu!.view)
pageMenu!.didMove(toParentViewController: self)
}
这是我完整的 viewdidload 更新代码。
解决方案
您需要在初始化 CAPSPageMenu后设置委托。
pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRect(x: 0.0, y:0.0, width:view.frame.width, height:self.view.frame.height), pageMenuOptions: parameters)
pageMenu!.delegate = self
print(pageMenu)
推荐阅读
- react-native - React Native Animation 不能在 ios 和 web 上运行,但只能在 android 上运行(demo Snack inside)
- cypress - 赛普拉斯:让赛普拉斯检测到您在自定义命令中调用了一个或多个 cy 命令,但返回了不同的值
- python - 如何使用 Unix 环境在 django 中创建超级用户
- c++ - 为什么没有在clang中调用派生类析构函数
- python - 将文本添加到 matplotlib 图中时出现 TypeError
- php - Laravel 中的多语言 URL
- javascript - 使用 HTML 发送电子邮件
- python - python查找文件错误,引用了错误的文件
- javascript - 使用通过 AJAX 从 PHP 加载的数据填充列表框
- apache - 日志文件可以安全删除吗?