Written by
Amy
on
Swiping Menu
4개의 메뉴를 좌우로 스와이프 하는 구조로 UI 구성해보기
MainViewController
- class
MainViewController
: UIViewController
- Horizontal 하게 움직이는
collectionView
를 property로 가지고 있다.
- 스와이프 할 때 따라서 같이 움직여줄
menuView
를 property로 가지고 있다.
MenuView
또한 내부에 collectionView
를 가지고 있다.
didSelectItemAt
되었을 때, 자신을 컨트롤 하는mainController
의 scrollToMenuIndex
을 실행한다.
- 스와이프 할 때 메뉴 하단에서 위치를 보여줄 horizontal Bar가 있으며, left Anchor를 조절하기 위한
horizontalBarLeftAnchorConstraint
property가 있다.
MainViewController 핵심 메소드
scrollViewDidScroll
: 스크롤 될 때, menuView에 있는 horizontalBar의 Left Anchor Constraint 를 조정한다.
scrollViewWillEndDragging
: 스크롤 될 때 targetOffset
을 통해 page index를 구해서 menuView에서도 알맞은 cell을 선택해준다.
Extension
- 코드로 AutoLayout을 적용해야 하는 일이 많아졌기 떄문에 UIView를 Extension 했다.