PageMenu를 사용하여 제작(하나)[Swift3.0]
16669 단어 SmartNewsPageMenuSwift수평 슬라이드 메뉴iOS
회의 응용 프로그램 만들기(하나)
가로 슬라이드 태그 메뉴 라이브러리 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 설치
속성에 webView
와siteUrl
,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. 구축해보기
어쨌든 이쯤에서 구축해 보자.견본에서 보듯이 가로 슬라이딩 메뉴와 각 라벨에 사이트를 불러오면 된다.
이어서 두 번째...
Reference
이 문제에 관하여(PageMenu를 사용하여 제작(하나)[Swift3.0]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/fromage-blanc/items/4c358e1e57e298baad18
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// 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.
}
}
// 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.
}
}
Reference
이 문제에 관하여(PageMenu를 사용하여 제작(하나)[Swift3.0]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fromage-blanc/items/4c358e1e57e298baad18텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)