티스토리 뷰
iPhone 기기 별 Font Size 동적으로 적용하기
Record |
|
작성일 |
2019. 09. 23 (월) |
Swift 버전 |
Swift 5 |
Xcode 버전 |
10.3 |
안녕하세요.
Fury입니다 :]
제가 공모전 참여를 위해서
프로젝트를 하고 있는데요.
하다 보니까 기계 별로 차이가 너무 심해서...
특히 저는 제 휴대폰 기종인
iPhone XS를 기준으로
코딩을 했는데
iPhone SE에서 보면 완전... 망...ㅋㅋㅋㅋ
그래서!!!!
오늘은 iPhone 기기별 font 사이즈 변경을 해볼 거예요.
1. UILabel Extension을 활용한 Font 사이즈 조정 |
화면에 뿌려지는 Text들은 대부분 UILabel로 이루어져 있죠??
버튼도 결국은 UILabel을 상속해서
Text 속성을 가지고 있습니다!!
그래서 UILabel을 Extension 해서
어디에서든지 사용할 수 있도록 하는 코드를 만들어 봤어요.
그전에!
휴대폰 기종 별 대응이니깐,
휴대폰의 사이즈를 알아보도록 할게요.
3.5 inch | 4 inch | 4.7 inch | 5.5 inch | 5.8 inch | 6.1 inch | 6.5 inch | |
기종(iPhone) | 3, 4s | 5, SE | 6, 6s, 7, 8 | 6s, 6s+, 7+, 8+ | X, XS | XR | XS MAX |
height | 480.0 | 568.0 | 667.0 | 736.0 | 812.0 | 896.0 | 896.0 |
제가 알아본 바로는 위와 같은데
틀릴 경우 말씀해주세요..ㅠㅠ
그리고 신기한 건 XR은 6.1inch고 XS Max는 6.5inch인데
화면 내의 height는 같은 896.0 이더라고요..
그럼, 이제 진짜 코드를 보도록 할게요.
dynimicFont라는 함수를 만들고 있어요.
size와 weight를 함께 받아서 처리하고 있습니다.
여기서 중요한 것은 size죠?
기종별로 높이를 switch 문으로 분기 처리하고 있습니다.
그리고 그 안에서 위의 UIFont를 초기화하고 있어요.
그리고 init의 fontSize 파라미터에
argument로 받았던(우리가 넣어 준) fontSize를 넣는데!!
기종별로 그 비율을 조절하는 겁니다.
저 같은 경우,
iPhone 3, 4S(3.5inch) 휴대폰은
XS 기준으로 준 font에서
0.7배로 사이즈를 줄이고 있어요.
이런 식으로 UILabel의 extensiobn을 해놓고
실제로 Label의 dynamicFont를 호출해서 사용하면 됩니다.
그러면, 여기서 Label의 text들은 휴대폰 별로 잘 조정이 될 텐데..
Autolayout으로 잡아준 버튼의 사이즈가 문제가 되네요..
위의 문제도
대응하는 코드를 만들고
다음 블로그에서 포스팅하도록 하겠습니다.
감사합니다 :]
'개발 > iOS' 카테고리의 다른 글
[Xcode] Xcode 사라진 시뮬레이터 추가하기 (0) | 2019.10.01 |
---|---|
[Swift/Xcode] Xcode에서 iPhone 시뮬레이터 좌표 변경하기 (0) | 2019.09.25 |
[Swift] Label text 부분적으로 색상 변경하는 방법 (0) | 2019.09.19 |
[Swift] iOS http 통신 허용하는 방법 (0) | 2019.09.17 |
[Swift] Extension UIColor 사용하기!! (1) | 2019.09.04 |
- Total
- Today
- Yesterday
- xcode11
- presentingViewController
- UITextField 멀티라인
- swift 문자열
- 앱커넥트
- TableView
- 카카오 로그인
- GIF
- 안드로이드
- 애플로그인
- 키크론K2
- firebase
- TextField Padding
- 공유하기 한국어
- Sign in with Apple
- Swift GoogleMap
- 문자열나누기
- iOS13
- Xcode
- error
- ModalPresentaionStyle
- SWIFT
- ios
- Swift Target Version
- signinwithapple
- Android
- Kakao
- 앱스토어 커넥트
- ActivityViewController
- swift fcm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |