알림창 커스터마이징은 기본적으로 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
'Archive > 꼼꼼한 재은씨 시리즈' 카테고리의 다른 글
커스텀 클래스(2) - 커스텀 탭 바 컨트롤러 (0) | 2021.03.19 |
---|---|
커스텀 클래스(1) - 커스텀 버튼 (0) | 2021.03.19 |
네비게이션 바 커스터마이징 (0) | 2021.03.19 |
탭바 커스터마이징 (0) | 2021.03.14 |
폰트는 앱 디자인의 눈코입! (0) | 2021.03.12 |