- This topic has 3개 답변, 4명 참여, and was last updated 4 years, 7 months 전에 by 민수 김.
3 답변 글타래를 보이고 있습니다
-
글쓴이글
-
-
iJoom참가자
- 글작성 : 8
- 답글작성 : 1
- XLPagerTabStrip pod 적용해보기
- XLPagerTabStrip
- 이쁘고 적용하기도 쉽고, 커스텀하기도 편함
- api 작동원리를 이해하고, native언어로 구현해보는 것도 좋은 공부법
다음과 같이 pod 설치
pod 'XLPagerTabStrip', '~> 9.0'
import XLPagerTabStrip
Main 뷰컨과 ChildeViewController만든 후 import XLPagerTabStrip 해준다.
- ViewController에 UIViewController를 지워버리고 다음과 같이 ButtonBarPager를 상속 및 적용한다.
class ViewController: ButtonBarPagerTabStripViewController
- StoryBoard에 CollectionView를 추가해주고 ButtonBarView Class를 상속시켜준다.
- StoryBoard에 ScrollView를 원하는 사이즈에 맞게 추가해주고 AutoLayout을 잡아준다. (CollectionView도 마찬가지)
ChildViewController에 다음과 같이 코드 추가
- IndicatorInfoProvider는 PagerTap에 나올 이름과 뷰컨을 재활용해서 화면에 보여줌
- func indicatarInfo는 각 화면에 맞는 Label값을 인디케이터 이름으로 리턴
import UIKit import XLPagerTabStrip class ChildViewController: UIViewController, IndicatorInfoProvider { var childNumber: String = "" @IBOutlet weak var childNameLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() childNameLabel.text = childNumber } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } func indicatorInfo(for pagerTabStripController: PagerTabStripViewController) -> IndicatorInfo { return IndicatorInfo(title: "\(childNumber)") } }
- MainViewController에서 다음과 같이 Paging될 화면과 뷰컨 재활용으로 화면 표시
- 꼭 viewControllers 함수를 오버라이딩해서 뷰컨 표시해줘야함, 그렇지 않으면 스레드에러 (Why?표시할 뷰컨 내용이 스크롤뷰에 나오지 않기 때문)
- ChildViewController 의 내용은 메인뷰컨의 스크롤뷰에 적용되어 표시됨
override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] { let child1 = UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ChildVC") as! ChildViewController child1.childNumber = "One" let child2 = UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ChildVC") as! ChildViewController child2.childNumber = "Two" return [child1, child2] }
- 실제 프로젝트에서의 사용
- 이 게시글은 야곰에 의해 4 years, 8 months 전에 수정됐습니다. 이유: 깨진 코드 수정
2020-04-17 오전 1:22 #6890
-
-
글쓴이글
3 답변 글타래를 보이고 있습니다
- 답변은 로그인 후 가능합니다.