iOS의 ‘색상 어둡게’ 모드

Jongwon Woo
2 min readJun 15, 2018

--

Fact

iOS 설정 중 ‘손쉬운 사용’ > ‘대비 증가’ > ‘색상 어둡게’를 켜면 UIApplicationDelegate.window의 tintColor가 #000000, 알파 0이 된다.

Side Effect

UIAlertController를 쉽게 사용하기 위해서 유틸리티 클래스 메소드로 만든 곳이 있다.

출처: https://stackoverflow.com/a/30941356

11번 째 줄에서 window의 tintColor를 alertWindow에 설정하고 있다. 그런데 이 설정은 원치 않았던 문제를 만든다.

경고창의 버튼 타이틀이 안 보인다.

Solutions

해결 방법 중 하나는 tintColor 설정하는 부분을 제거하는 것이다. 단점은 tintColor를 사용하고 싶을 경우에 못 쓴다는 것이다.

다른 방법은 클래스 메소드로 만들어서 사용하는 방법을 포기하는 것이다. 경고창을 띄우고 싶을 경우 ViewController마다 적절히 개발한다. 개인적으로 이 방법이 적절하다고 생각한다. 왜냐하면 경고창을 띄우는 행위 말고는 각각의 경고창들은 메시지, 버튼 개수도 다르고 텍스트필드처럼 다른 UI 요소가 들어갈 수도 있다. 또 경고창이 닫히면서 하는 일도 다를 것이다.

P.S.

‘색상 어둡게’라는 설정이 이런 문제를 일으킬 것을 예측하는 것은 불가능하다.

지금 내가 소스 코드를 작성하면서 할 수 있는 일은 이 소스 코드가 정확히 어떤 일을 하는 지 아는 것이다.

--

--

Jongwon Woo
Jongwon Woo

Written by Jongwon Woo

I try to make something awesome.

No responses yet