PageMenu를 사용하여 제작(하나)[Swift3.0]

회의 응용 프로그램 만들기(하나)


가로 슬라이드 태그 메뉴 라이브러리 PageMenu를 사용하는 로케이션 애플리케이션의 설치 절차는 두 번에 걸쳐 설명됩니다.샘플로 QA 사이트의 포지셔닝 애플리케이션을 제작한다.
두 번째는 여기.
기사에 사용된 사이트는 설명하기 편리하도록 본 보도에 한정되어 있다

샘플(하나)



약간 파릇파릇한 것 같아요.

1. 프로젝트 제작


Single View Application 템플릿을 사용하여 새 프로젝트를 만듭니다.이번에는'NewsAppSample'이라는 이름을 지었다.

2. PageMemu의 가져오기


https://github.com/orazz/PageMenu에서 Swift 3까지.버전 0을 다운로드할 수 있습니다.다운로드 후 CAPSPageMenu.swift를 프로젝트에 드래그합니다.


3. 네트워크 액세스 설정


info.plist에 추가App Transport Security Settings.이 하위 요소에 Allow Arbitray Loads를 추가하고value를 YES로 설정합니다.이로써 홈페이지 방문은 전체 허가 상태(2016.12월까지)로 바뀌었다.

4. 콘텐츠 컨트롤러 준비


PageMenu의 각 레이블에 해당하는 컨트롤러를 준비합니다.메뉴: File→New→File, Cocoa Touch Class를 두 번 클릭합니다.XIB 파일을 동시에 만들려면 "Also create XIB file"에서 선택합니다.이번 이름은 ContentsViewController입니다.

5.ContentsViewController 설치


속성에 webViewsiteUrl,nib 파일을 매개 변수로 하는 초기화기init를 추가합니다.
ContentsViewController.swift
// Swift3.0

import UIKit

class ContentsViewController: UIViewController ,UIWebViewDelegate{

    var webView:UIWebView!
    var siteUrl:String!


    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

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

}

6.ViewController 설치


이 샘플은 사이트 정보를 하드웨어 인코딩했지만 실제 응용에서는 DB에서 얻은 느낌이 든다.
ViewController.swift
// Swift3.0

import UIKit

class ViewController: UIViewController {

    // インスタンス配列
    var controllerArray : [UIViewController] = []
    var pageMenu : CAPSPageMenu?

    // サイト情報
    let siteInfo:[Dictionary<String,String>] = [
        ["title":"ヤフー!知恵袋","url":"http://chiebukuro.yahoo.co.jp/"],
        ["title":"教えて!goo","url":"http://oshiete.goo.ne.jp/"],
        ["title":"OKWAVE","url":"http://okwave.jp/"],
        ["title":"発言小町","url":"http://komachi.yomiuri.co.jp/"],
        ["title":"BIGLOBEなんでも相談室","url":"http://soudan.biglobe.ne.jp/sp/"]
    ]

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        for site in siteInfo {

            let controller:ContentsViewController = ContentsViewController(nibName: "ContentsViewController", bundle: nil)

            controller.title = site["title"]!
            controller.siteUrl = site["url"]!

            controller.webView = UIWebView(frame : self.view.bounds)
            controller.webView.delegate = controller
            controller.view.addSubview(controller.webView)
            let req = URLRequest(url: URL(string:controller.siteUrl!)!)
            controller.webView.loadRequest(req)
            controllerArray.append(controller)

        }

        // Customize menu (Optional)
        let parameters: [CAPSPageMenuOption] = [
            .scrollMenuBackgroundColor(UIColor.white),
            .viewBackgroundColor(UIColor.white),
            .bottomMenuHairlineColor(UIColor.blue),
            .selectionIndicatorColor(UIColor.red),
            .menuItemFont(UIFont(name: "HelveticaNeue", size: 14.0)!),
            .centerMenuItems(true),
            .menuItemWidthBasedOnTitleTextWidth(true),
            .menuMargin(16),
            .selectedMenuItemLabelColor(UIColor.black),
            .unselectedMenuItemLabelColor(UIColor.gray)

        ]

        // Initialize scroll menu

        let rect = CGRect(origin: CGPoint(x: 0,y :20), size: CGSize(width: self.view.frame.width, height: self.view.frame.height))
        pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: rect, pageMenuOptions: parameters)

        self.addChildViewController(pageMenu!)
        self.view.addSubview(pageMenu!.view)

        pageMenu!.didMove(toParentViewController: self)

    }

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


}

7. 구축해보기


어쨌든 이쯤에서 구축해 보자.견본에서 보듯이 가로 슬라이딩 메뉴와 각 라벨에 사이트를 불러오면 된다.
이어서 두 번째...

좋은 웹페이지 즐겨찾기