WebView를 사용한 RN 프로젝트에서 ios는 폰트가 제대로 적용되지 않는 이슈가 있었다.
먼저 font-family의 적용 원리를 찾아보았다.
font-family 의 원리
font-family: [1순위], [2순위], [3순위], [...] 와 같은 원리로 현재 OS 에 있는 폰트가 적용된다고 알고 있습니다. 하지만 이렇게만 알면 안되고 정확한 알고리즘을 알아야 합니다. 알고리즘은 다음과 같습니다.
- [1순위]의 폰트가 OS 에 있는지 확인한다. 있으면 그것을 바로 적용한다.
- 없으면 웹서버에 정의된 웹폰트가 있는지 확인한다.
- 웹서버에 웹폰트가 있으면 다운을 받고, 없으면 [1순위]의 폰트는 없다 간주하고 [2순위]의 폰트를 검사하기 시작한다.
- 1~3의 작업을 반복한다.
문제는 OS에 적용하려고 했던 폰트가 없어서 ios에서는 디폴트 폰트가 적용되고 있던 것이였다.
public에 _font.scss 파일을 만들어주고 @font-face로 직접 폰트 파일을 로드해주었다.
global.scss에 import하여 간단하게 문제를 해결할 수 있었다.
'React.js' 카테고리의 다른 글
[React] Framer-motion, HOC 관련 Runtime Error (0) | 2025.04.29 |
---|---|
[React] createPortal을 사용한 z-index 제어 (0) | 2024.12.04 |
[Animation] Framer-motion, React Status에 따른 motion.div의 Animation이 실행되지 않던 이슈 (0) | 2024.10.21 |
Ref와 Polling 방식을 사용하여 게임 데이터 준비 이후 실행 처리 (0) | 2024.10.08 |
[React] Queue 자료구조를 사용한 Task Scheduling (0) | 2024.05.09 |