Archive/꼼꼼한 재은씨 시리즈

알림창 커스터마이징

lgvv 2021. 3. 19. 13:41

저기 콘텐츠 뷰 영역을 이용한다.

알림창 커스터마이징은 기본적으로 private api 이기 때문에 정보가 많이 없지만 그럼에도 불구하고 우리는 커스텀할 수 있다.

 

* 추가정보 - 접근 제한자의 허용 범위 *

  private fileprivate internal public open
같은 클래스 o o o o o
같은 파일   o o o o
같은 모듈, 프로젝트     o o o
모듈 외부       o o
모듈 외부 & 수정가능         o

커스터마이징을 위해선 애플에서 허용해준 범위 내에서 가능한데, 프라이빗 api와 open api가 있어서 알림창의 경우는 프라이빗 api 이다.

 

let alert = UIAlertController(title: nil, message: "이번 글의 평점은 다음과 같습니다.", preferredStyle: .alert)

        let okAction = UIAlertAction(title: "OK", style: .default, handler: nil)

        alert.addAction(okAction)

        

        let contentVC = ImageViewController()

        alert.setValue(contentVC, forKey: "contentViewController") - > 이부분 주목!!

        self.present(alert, animated: false, completion: nil)

 

뭐 다른건 아니고 저 부분을 보면 setValue 에 forkey를 넣는 방식인데, 프라이빗 api라서 자동완성도 안되고, 저런 방식으로 사용해야한다.

 

커스터 마이징에서

1. 맵

2. 이미지

3. 슬라이더

4. 리스트

 

이렇게 4개를 공부해 보았는데 깃헙에 코드를 올려두었으니 궁금한건 코드를 보면서 주석과 함께 더 알아보기

 

github.com/DesignYourFuture/ios_study_practice/tree/main/Chapter03-Alert