[SeSAC] 20220816_TIL (Custom Framework, Access Control, UIView Animation, PageViewController)
- 소프트웨어에 대한 결합도(Coupling)는 낮게, 응집도(Cohesion)는 높게 구성가능
- 결합도: 모듈과 모듈 / 응집도: 모듈 내부에서 하나의 목적을 가지고 연관되어 있는 정도
- 프로젝트에 작성한 Custom Framework 추가하기
프로젝트에서(최상위 파일) -> Add Files to ~ -> 추가하고자하는 Custom Framework 프로젝트 파일만 가져오기(.xcodeproj)
- 추가된 프로젝트의 프로젝트 파일에서 Target -> General -> Frameworks Libraries, ans Embedded Content에 추가
- 코드에 대한 접근을 제한(= 은닉화)
- 기본 인터페이스 지정
접근 수준도 | 선언 | 개방도 |
개방 접근 수준 | open | 개방적 |
공개 접근 수준 | public | | |
내부 접근 수준 | internal (default) | | |
파일 내부 접근 수준 | fileprivate | | |
비공개 접근 수준 | private | 제한적 |
public vs open
오버라이딩 가능 여부
오버라이딩은 상속해야됨
open = class 만 가능
-고려사항
1.애니메이션이 어떤 상태에서 시작하는가
2.몇초 뒤에 어떻게 끝나는가
3.시간텀을 설정해서 애니메이션 빠르기 정해주기
UIView.animate(withDuration: 3) {
self.tutorialLabel.alpha = 1
} completion: { _ in
self.animateBlackView()
}
}
-페이지 뷰로 처리할 뷰들을 배열로 지정
-인덱스를 통한 페이지 뷰 순서 지정
-다음, 이전 페이지 index +- 1
-핵심코드
extension WalkThroughPageViewController: UIPageViewControllerDelegate, UIPageViewControllerDataSource {
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
//기준 뷰의 뒤에 위치하는 뷰(이전순서)
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
//기준 뷰의 앞에 위치하는 뷰(다음순서)
}
func presentationCount(for pageViewController: UIPageViewController) -> Int {
return //페이지 수
}
func presentationIndex(for pageViewController: UIPageViewController) -> Int {
//페이지 띄우기
guard let fist = viewControllers?.first, let index = pageViewControllerList.firstIndex(of: fist) else { return 0 }
return index
}
}
[SeSAC] 20220823_TIL (Realm 필터링, 정렬 ) (0) | 2022.08.23 |
---|---|
[SeSAC] 20220822_TIL (Realm) (0) | 2022.08.22 |
[SeSAC] 20220811_TIL (Privacy & Authorization, 권한, Apple Map, MapKit) (0) | 2022.08.11 |
[SeSAC] 20220809_TIL (TableView + CollectionView) (0) | 2022.08.09 |
[SeSAC] 20220808_TIL (API관련 파일 관리하기) (0) | 2022.08.08 |