CAPSPageMenu получить индекс, когда мы нажимаем в касаниях меню - PullRequest
0 голосов
/ 12 июня 2019

Я добавил 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.

1 Ответ

0 голосов
/ 12 июня 2019

Вам необходимо установить делегата после , когда вы инициализируете 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...