화장품 APPLIPS에서도 사용하는 PageMenu의 가져오기 방법 [Swift3] [Swift4도]

10435 단어 Swift

LIPS에서도 사용되는 PageMenu

Cocoapods로 PageMenu를 설치하면 오류가 발생합니다.


Swift3 이전의 물건은 Cocopods에서 사용된다.따라서 Giithub에서 복제해야 합니다PageMenu의 Giithub 파일이 여기 있습니다.

Swift Version을 3.3으로 축소


아직 스위프트 4에 대응하지 않았기 때문에 4로 수정하는 것보다 버전을 3.3으로 낮추는 것이 수월하다.
PageMenuViewController.swift
class PageMenuViewController: UIViewController {

    var pageMenu: CAPSPageMenu?


    override func viewDidLoad() {
        super.viewDidLoad()

        //ストーリーボードのFavListTableViewControllerを取得する必要がある
        let vc1 = storyboard?.instantiateViewController(withIdentifier: "FavListTableViewController") as! FavListTableViewController
        let vc2 = storyboard?.instantiateViewController(withIdentifier: "FavListTableViewController") as! FavListTableViewController
        let vc3 = storyboard?.instantiateViewController(withIdentifier: "FavListTableViewController") as! FavListTableViewController
        let vc4 = storyboard?.instantiateViewController(withIdentifier: "FavListTableViewController") as! FavListTableViewController
        let vc5 = storyboard?.instantiateViewController(withIdentifier: "FavListTableViewController") as! FavListTableViewController

        //TableViewはViewControllerのViewのサブクラスなのでViewが生成されてからじゃないと作れない
        _ = vc1.view
        _ = vc2.view
        _ = vc3.view
        _ = vc4.view
        _ = vc5.view


        vc1.title = "リスト1"
        vc2.title = "リスト2"
        vc3.title = "リスト3"
        vc4.title = "リスト4"
        vc5.title = "リスト5"

        vc1.listNum = 1
        vc2.listNum = 2
        vc3.listNum = 3
        vc4.listNum = 4
        vc5.listNum = 5

        let parameters: [CAPSPageMenuOption] = [
            .menuItemSeparatorWidth(4.0),
            .useMenuLikeSegmentedControl(true),
            .menuItemSeparatorPercentageHeight(0.0)
        ]
        pageMenu = CAPSPageMenu(viewControllers: [vc1, vc2, vc3, vc4, vc5], frame: view.bounds, pageMenuOptions: parameters)
        view.addSubview(pageMenu!.view)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

//     PageMenuがNavigationBarと被らないように
    override func viewDidLayoutSubviews() {
        let naviHeight = UIApplication.shared.statusBarFrame.size.height + self.navigationController!.navigationBar.frame.height
        pageMenu!.view.frame = CGRect(x: 0.0, y: naviHeight, width: self.view.frame.width, height: self.view.frame.height - naviHeight)
        print(#function)

//        let tabHeight = self.tabBarController?.tabBar.frame.size.height

    }
}
제 경우는 스토리보드에 UI View Controller의 F avList Table View Controller를 설정해서 Storyboard ID로 그걸 얻었습니다.ViewController의 규칙으로 UIViewController에 배치된 UIKit 부품은 UIView로 불린 후에는 이름이 알려지지 않습니다.내 상자 안에 UITObleView를 넣었다.
PageMenu의 Giithub 문서에서 제목과parameters를 지정하고ddSubView를 진행합니다.

좋은 웹페이지 즐겨찾기