상세 컨텐츠

본문 제목

[SeSAC] 20220816_TIL (Custom Framework, Access Control, UIView Animation, PageViewController)

IOS/TIL

by 카키IOS 2022. 8. 16. 10:13

본문

1.Custom Framework

- 소프트웨어에 대한 결합도(Coupling)는 낮게, 응집도(Cohesion)는 높게 구성가능

- 결합도: 모듈과 모듈 / 응집도: 모듈 내부에서 하나의 목적을 가지고 연관되어 있는 정도

 

Framework Project Template

 

- 프로젝트에 작성한 Custom Framework 추가하기

프로젝트에서(최상위 파일) -> Add Files to ~ -> 추가하고자하는 Custom Framework 프로젝트 파일만 가져오기(.xcodeproj)

 

- 추가된 프로젝트의 프로젝트 파일에서 Target -> General -> Frameworks Libraries, ans Embedded Content에 추가

이 과정까지 완료되면 import {framework:Name}해서 사용 가능하다

 

2.접근 제어자(Access Control)

- 코드에 대한 접근을 제한(= 은닉화)

- 기본 인터페이스 지정

접근 수준도 선언 개방도
개방 접근 수준 open 개방적
공개 접근 수준 public |
내부 접근 수준 internal (default) |
파일 내부 접근 수준 fileprivate |
비공개 접근 수준 private 제한적

 

public vs open

오버라이딩 가능 여부

오버라이딩은 상속해야됨

open = class 만 가능

 

3.UIView Animation

-고려사항

1.애니메이션이 어떤 상태에서 시작하는가

2.몇초 뒤에 어떻게 끝나는가

3.시간텀을 설정해서 애니메이션 빠르기 정해주기

 

UIView.animate(withDuration: 3) {
        self.tutorialLabel.alpha = 1
    } completion: { _ in
        self.animateBlackView()
    }
}

 


4.PageViewController

-페이지 뷰로 처리할 뷰들을 배열로 지정

-인덱스를 통한 페이지 뷰 순서 지정

-다음, 이전 페이지 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
    }
    
    
    
}
728x90
반응형

관련글 더보기