XLPagerTabStrip 사용 및 사용자 정의
소개
안녕하세요.
XLPagerTabStrip 라는 멋진 Swift제의 iOS 라이브러리를 발견했으므로 사용법 등을 공유하고 싶습니다.
이르지 못하는 점 등 많이 있다고 생각합니다만, 코멘트등 받을 수 있으면 다행입니다.
※화상의 링크는 GitHub로부터 인용했습니다
htps : // 기주 b. 코 m / x 마 rt ぁ bs / XL 퍼지 r
도입에 대해서
실행 환경은 (Swift3.0.2) (Xcode8.2.1)로 CocoaPods를 이용하고,
이번은 기본적인 gif의 좌상의 Button Bar를 샘플로 해 보고 싶습니다.
Podfile.rbuse_frameworks!
pod 'XLPagerTabStrip'
수업 준비
관리 클래스 (ButtonBarPagerTabStripViewController)
ViewController들을 관리하는 ButtonBarPagerTabStripViewController를 상속한 클래스를 준비합니다.
MainViewController.swiftimport UIKit
import XLPagerTabStrip
class MainViewController: ButtonBarPagerTabStripViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
//管理されるViewControllerを返す処理
let firstVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "First")
let secondVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Second")
let thirdVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Third")
let childViewControllers:[UIViewController] = [firstVC, secondVC, thirdVC]
return childViewControllers
}
}
관리되는 ViewController (IndicatorInfoProvider 프로토콜을 구현 한 UIViewController)
스와이프나 버튼을 눌러 전환하는 ViewController 클래스를 준비합니다.
이번 예에서는 First(보라색),Second(녹색),Third(물색)를 준비했습니다만, First가 되고 있는 곳을 Second,Third로서 있을 뿐입니다.
FirstViewController.swiftimport UIKit
import XLPagerTabStrip
class FirstViewController: UIViewController, IndicatorInfoProvider {
//ここがボタンのタイトルに利用されます
var itemInfo: IndicatorInfo = "First"
override func viewDidLoad() {
super.viewDidLoad()
}
//必須
func indicatorInfo(for pagerTabStripController: PagerTabStripViewController) -> IndicatorInfo {
return itemInfo
}
}
Storyboard 준비
실행 환경은 (Swift3.0.2) (Xcode8.2.1)로 CocoaPods를 이용하고,
이번은 기본적인 gif의 좌상의 Button Bar를 샘플로 해 보고 싶습니다.
Podfile.rb
use_frameworks!
pod 'XLPagerTabStrip'
수업 준비
관리 클래스 (ButtonBarPagerTabStripViewController)
ViewController들을 관리하는 ButtonBarPagerTabStripViewController를 상속한 클래스를 준비합니다.
MainViewController.swiftimport UIKit
import XLPagerTabStrip
class MainViewController: ButtonBarPagerTabStripViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
//管理されるViewControllerを返す処理
let firstVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "First")
let secondVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Second")
let thirdVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Third")
let childViewControllers:[UIViewController] = [firstVC, secondVC, thirdVC]
return childViewControllers
}
}
관리되는 ViewController (IndicatorInfoProvider 프로토콜을 구현 한 UIViewController)
스와이프나 버튼을 눌러 전환하는 ViewController 클래스를 준비합니다.
이번 예에서는 First(보라색),Second(녹색),Third(물색)를 준비했습니다만, First가 되고 있는 곳을 Second,Third로서 있을 뿐입니다.
FirstViewController.swiftimport UIKit
import XLPagerTabStrip
class FirstViewController: UIViewController, IndicatorInfoProvider {
//ここがボタンのタイトルに利用されます
var itemInfo: IndicatorInfo = "First"
override func viewDidLoad() {
super.viewDidLoad()
}
//必須
func indicatorInfo(for pagerTabStripController: PagerTabStripViewController) -> IndicatorInfo {
return itemInfo
}
}
Storyboard 준비
import UIKit
import XLPagerTabStrip
class MainViewController: ButtonBarPagerTabStripViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
//管理されるViewControllerを返す処理
let firstVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "First")
let secondVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Second")
let thirdVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Third")
let childViewControllers:[UIViewController] = [firstVC, secondVC, thirdVC]
return childViewControllers
}
}
import UIKit
import XLPagerTabStrip
class FirstViewController: UIViewController, IndicatorInfoProvider {
//ここがボタンのタイトルに利用されます
var itemInfo: IndicatorInfo = "First"
override func viewDidLoad() {
super.viewDidLoad()
}
//必須
func indicatorInfo(for pagerTabStripController: PagerTabStripViewController) -> IndicatorInfo {
return itemInfo
}
}
를 준비하고, StoryboardID를 First(보라색),Second(녹색),Third(물색)로 각각 설정하고, 각각의 클래스의 접속도 행하고 있습니다.
검은색의 ViewController에 대해서 전환 부분이 되는 Scroll View와 버튼 부분이 되는 Collection View를 배치합니다.
검정색 ViewController의 Scroll View를 선택하고 마우스 오른쪽 버튼을 클릭하고 다음과 같이 설정합니다.
또한 검은 색 ViewController의 Collection View 클래스를 "ButtonBarView"로 연결하고 Module을 "XLPagerTabStrip"이라고합니다. 그리고 마찬가지로 다음과 같이 설정합니다.
실행해보기
여기서 한 번 실행해 보겠습니다. 이번 예에서는 설치 장소가 자유롭다는 것을 명시하고 싶어서 BarView를 아래쪽에 설치해 보았습니다.
사용자 정의 정보
BarView는 색상 등을 자유롭게 변경할 수 있습니다.
주의점입니다만, 설정은 ViewDidLoad 안에서 행해 super.viewDidLoad()
보다 전에 기술합니다.
설정 예
MainViewController.swiftoverride func viewDidLoad() {
//バーの色
settings.style.buttonBarBackgroundColor = UIColor(red: 73/255, green: 72/255, blue: 62/255, alpha: 1)
//ボタンの色
settings.style.buttonBarItemBackgroundColor = UIColor(red: 73/255, green: 72/255, blue: 62/255, alpha: 1)
//セルの文字色
settings.style.buttonBarItemTitleColor = UIColor.white
//セレクトバーの色
settings.style.selectedBarBackgroundColor = UIColor(red: 254/255, green: 0, blue: 124/255, alpha: 1)
super.viewDidLoad()
}
색상 설정 속성
코드
설명
buttonBarBackgroundColor: UIColor?
BarView 배경색
buttonBarItemBackgroundColor: UIColor?
버튼 배경색
buttonBarItemTitleColor: UIColor?
버튼의 문자색
selectedBarBackgroundColor: UIColor
선택 바 색상
여백 및 공백과 같은 설정 속성
코드
설명
buttonBarMinimumLineSpacing: CGFloat?
버튼 간격
buttonBarLeftContentInset: CGFloat?
버튼의 왼쪽 여백
buttonBarRightContentInset: CGFloat?
버튼의 오른쪽 여백
selectedBarHeight: CGFloat
선택 바 높이
코드에 의한 천이나 현재의 ViewController 취득 등
관리하는 ButtonBarPagerTabStripViewController(검정색)에는 다음과 같은 속성과 메서드가 있습니다.
초기 위치도 이것으로 설정할 수 있네요.
코드
설명
viewControllers: [UIViewController]
관리할 ViewController의 배열
currentIndex: Int
현재 ViewController의 Index를 나타냅니다.
func moveToViewController(at index: Int, animated: Bool = true)
색인을 지정하여 전환합니다.
참고로 한 기사
BarView는 색상 등을 자유롭게 변경할 수 있습니다.
주의점입니다만, 설정은 ViewDidLoad 안에서 행해
super.viewDidLoad()
보다 전에 기술합니다.설정 예
MainViewController.swift
override func viewDidLoad() {
//バーの色
settings.style.buttonBarBackgroundColor = UIColor(red: 73/255, green: 72/255, blue: 62/255, alpha: 1)
//ボタンの色
settings.style.buttonBarItemBackgroundColor = UIColor(red: 73/255, green: 72/255, blue: 62/255, alpha: 1)
//セルの文字色
settings.style.buttonBarItemTitleColor = UIColor.white
//セレクトバーの色
settings.style.selectedBarBackgroundColor = UIColor(red: 254/255, green: 0, blue: 124/255, alpha: 1)
super.viewDidLoad()
}
색상 설정 속성
코드
설명
buttonBarBackgroundColor: UIColor?
BarView 배경색
buttonBarItemBackgroundColor: UIColor?
버튼 배경색
buttonBarItemTitleColor: UIColor?
버튼의 문자색
selectedBarBackgroundColor: UIColor
선택 바 색상
여백 및 공백과 같은 설정 속성
코드
설명
buttonBarMinimumLineSpacing: CGFloat?
버튼 간격
buttonBarLeftContentInset: CGFloat?
버튼의 왼쪽 여백
buttonBarRightContentInset: CGFloat?
버튼의 오른쪽 여백
selectedBarHeight: CGFloat
선택 바 높이
코드에 의한 천이나 현재의 ViewController 취득 등
관리하는 ButtonBarPagerTabStripViewController(검정색)에는 다음과 같은 속성과 메서드가 있습니다.
초기 위치도 이것으로 설정할 수 있네요.
코드
설명
viewControllers: [UIViewController]
관리할 ViewController의 배열
currentIndex: Int
현재 ViewController의 Index를 나타냅니다.
func moveToViewController(at index: Int, animated: Bool = true)
색인을 지정하여 전환합니다.
참고로 한 기사
봐 주셔서 감사합니다.
Reference
이 문제에 관하여(XLPagerTabStrip 사용 및 사용자 정의), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/KikurageChan/items/35593dc3aac8d694db8e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)