본문 바로가기
iOS/Swift

Swift) Dynamic Type, Accessibility Inspector

by Jiseong 2022. 2. 13.

Dynamic Type

동적 타입? 스크롤뷰처럼 동적으로 뭐.. 크기 늘어나고 그런건가 싶었는데, 아니더라

 

텍스트의 크기를 flexible하게 조정하는 것이다.

 

모든 사용자의 시력 등의 조건은 다르다.

 

이 때문에 애플은 사용자에게 폰트사이즈를 사용자에게 맞게끔 변경할 수 있게 만들어주었다.

 

하지만 사용자가 폰트사이즈를 변경한다고 어플리케이션의 폰트 사이즈가 변경되진 않는다.

 

이때 텍스트를 다이나믹 타입으로 만들어주면, 사용자가 설정한 폰트 사이즈에 맞게끔 변경할 수 있다.

위는 애플에서 정의한 다이나믹 타입의 목표이다.

변경은 어떻게 하죠

설정 > 손쉬운 사용 > 디스플레이&텍스트 크기

Dynamic Type 지원

개발자는 모든 사용자를 고려하고, 지원해야하기에 Dynamic Type을 지원하는 어플리케이션을 개발해야 한다.

 

HIG에도 있으니깐.. 이거 안지키면 리젝도 당하지않을까?

 

먼저 애플이 제공하는 기본 폰트로 Dynamic Type을 지원할 수 있다.

진짜 리젝당하나 궁금해서 검색해보니 폰트 사이즈 안지켜서 리젝당한 일도 종종 있나보다.

 

Dynamic Type을 지원하는 방법은 Inspector에서 지원하는 방법과, 코드로 지원하는 방법이 있다.

Inspector

스토리보드에서 레이블 선택 후 인스펙터에서 애플에서 제공하는 기본 폰트와 Automatically Adjusts Font를 체크해주면 된다.

Code

빨간 네모안의 2줄이면 된다.

기본제공 폰트로 레이블의 폰트를 설정하고, 다이나믹 타입을 True로 설정하면 끝

적용 결과

위가 스토리보드, 아래가 코드로 적용한 것이다.

커스텀 폰트

근데 애플이 제공하는 12개의 기본 폰트 사이즈가 아닌 다른 폰트 사이즈를 적용하면 다이나믹 타입을 체크해줘도 적용이 안된다.

System 얘도 애플에서 제공하는 애인줄 알았는데 HIG 목록에 없더라

 

그래서 실행을 시켜보면 다이나믹 타입이 적용이 되지 않은 모습을 볼 수 있다.

 

위가 System이다. 

커스텀 폰트를 적용하려면 

위 클래스를 사용하여 폰트는 커스텀하되 스타일..?은 애플이 제공하는 폰트로 만들어줘야한다..

 

그니깐 겉모습을 커스텀해준다고 보면 될 것 같다.

 

그 전에 난 커스텀 폰트를 다운받아서 적용시켜보고 싶어서 적용해보았다.

 

적용 과정은..

사용하고픈 폰트를 다운받아 프로젝트에 import 해준다.

 

그리고 plist에서 Fonts provided by application 리스트가 있다면 그 내부에 추가해주고, 없다면 리스트를 추가해 내부에 폰트 파일 이름을 확장자까지 전부 붙여 추가해준다.

적용 코드는 아래와 같다.

guard let font = UIFont(name: "Cafe24Dongdong", size: 20) else {
    return
}
    
label.font = UIFontMetrics.default.scaledFont(for: font)

label.font = UIFontMetrics(forTextStyle: .title1).scaledFont(for: font)

label.adjustsFontForContentSizeCategory = true
label.numberOfLines = 0
label.text = "안녕히계세요안녕히계세요안녕히계세요안녕히계세요안녕히계세요안녕히계세요안녕히계세요안녕히계세요안녕히계세요"

적용 결과

마지막에 볼드체까지 테스트해주는데 커스텀 폰트는 변화가 없는데..

 

개인적으로 예상되는 것은 폰트의 볼드체까지 다운받아서 따로 연결을 해줘야 아마 정상적으로 변경할 수 있을 것 같다.

Accessibility Inspector

WWDC2019 - Visual Design and Accessibility

 

위 gif들을 보면 어떤 창 내부를 누르니깐 폰트 사이즈 변경되고 그러는 것을 볼 수 있을텐데 저게 시뮬레이터에서 접근성을 확인, 테스트할 수 있는 Accessibility Inspector이다.

Xcode > Open Developer Tool > Accessibility Inspector

현재 내가 사용한 기능도 접근성 테스트의 일종이고.. 

이렇게 상세 속성까지 알 수 있다.

 

그리고 접근성이 떨어지는 것이라거나.. 추가해줘야 되는게 있다는 것을 검사(Audit)을 통해 알 수도 있다.

굉장히 요긴하게 쓰일 것 같다.





음.. 사진 너무 많나.. ㅠ
맥주먹을까

'iOS > Swift' 카테고리의 다른 글

[Swift] 배열 안전하게 조회  (0) 2022.02.13
Swift) Subscript  (0) 2022.02.13
Swift) 문자열의 특정 범위의 속성을 변경해보자 NSMutableAttributedString  (0) 2022.02.13
Swift) Codable, Decode, Encode  (0) 2022.02.13
Swift) TableView  (0) 2022.02.13

댓글