>  기사  >  웹 프론트엔드  >  uniapp 글꼴과 아이콘이 가로로 표시되지 않습니다.

uniapp 글꼴과 아이콘이 가로로 표시되지 않습니다.

WBOY
WBOY원래의
2023-05-22 09:18:06942검색

최근 Uniapp 애플리케이션을 개발할 때 일부 기기에서 글꼴과 아이콘이 가로로 표시되지 않는 이상한 문제에 직면했습니다. 이 문제는 내 장치에서는 정상적으로 보이지만 다른 장치에서는 문제가 있었기 때문에 매우 괴로웠습니다. 며칠간의 연구와 디버깅 끝에 마침내 원인과 해결책을 찾았습니다.

문제 설명

먼저 이 문제의 성능을 살펴보겠습니다. 제가 개발한 기기에서는 아래 그림과 같이 폰트와 아이콘이 문제없이 정상적으로 표시됩니다.

uniapp 글꼴과 아이콘이 가로로 표시되지 않습니다.

그런데 다른 Android 기기에 앱을 설치했을 때 문제가 발생했습니다. 아래 그림과 같이 폰트도 아이콘도 가로가 아닌 폰트 하단이 왼쪽으로 기울어져 있고, 아이콘 하단도 오른쪽으로 기울어져 있는 것을 확인할 수 있습니다.

uniapp 글꼴과 아이콘이 가로로 표시되지 않습니다.

이 문제의 출현은 애플리케이션의 전반적인 미학에 영향을 미쳤으며, 미세한 레이아웃이 필요한 일부 UI 디자인에도 큰 문제를 일으킬 것입니다.

문제 분석

다음으로 이 문제의 원인을 분석해 보겠습니다. 디버깅하고 조사한 결과 이 ​​문제는 주로 장치의 해상도와 픽셀 밀도로 인해 발생한다는 것을 발견했습니다.

내 장치의 해상도는 1080x1920이고 픽셀 밀도는 440dpi입니다. 다른 테스트 장치에서는 해상도와 픽셀 밀도가 다릅니다. 글꼴과 아이콘은 픽셀을 기준으로 표시되므로 해상도와 픽셀 밀도가 다른 장치에서는 동일한 글꼴 크기와 아이콘 크기가 다른 크기로 나타납니다. 또한 글꼴과 아이콘의 앵커 포인트가 다르면 하단 정렬에도 편차가 발생합니다.

Solution

다음으로 이 문제를 해결하는 방법에 대해 논의해 보겠습니다. 연구와 탐색을 거쳐 다음과 같은 솔루션 아이디어를 요약했습니다.

1. 벡터 아이콘 사용

벡터 아이콘은 디지털 설명 그래픽을 기반으로 하는 아이콘이며, 어떤 해상도와 픽셀 밀도에서도 선명도와 일관성을 유지할 수 있습니다. 벡터 아이콘을 사용하면 다양한 해상도와 픽셀 밀도로 인해 발생하는 아이콘 크기 및 위치 편차 문제를 피할 수 있습니다.

Uniapp에서 벡터 아이콘을 사용하려면 타사 라이브러리(예: Fontawesome, ionicons 등)를 사용해야 합니다. 라이브러리에 아이콘 파일을 도입하면 해당 아이콘을 사용하여 페이지에 표시할 수 있습니다. 수업 이름. 구체적인 사용법은 관련 타사 라이브러리의 문서를 참조하세요.

2. Flex 레이아웃 사용

Flex 레이아웃은 컨테이너의 레이블이 크기, 간격 및 위치를 유연하게 조정할 수 있도록 하여 다양한 해상도 및 픽셀 밀도로 인한 조판 문제를 해결합니다. Uniapp은 또한 flex 레이아웃 사용을 지원합니다. 부모 컨테이너의 레이아웃 모드를 flex로 설정할 수 있으며, 자식 라벨의 크기와 위치는 flex 속성을 설정하여 얻을 수 있습니다.

3. 픽셀 단위를 사용하세요

유니앱에서는 라벨의 기본 단위가 rpx(반응형 픽셀)인데, 이는 기기의 픽셀 밀도에 따라 적응되는 단위이지만 경우에 따라 픽셀 단위(px)를 사용하는 경우도 있습니다. )가 더 정확하고 신뢰할 수 있습니다. 픽셀 단위는 장치의 픽셀 밀도에 영향을 받지 않기 때문에 해상도와 픽셀 밀도가 다른 장치에서 타이포그래피 문제를 피할 수 있습니다.

결론

위 내용은 유니앱 애플리케이션에서 나타나는 글꼴과 아이콘이 고르지 않은 문제에 대한 저의 분석 및 해결 방법입니다. 며칠간의 노력 끝에 마침내 이 문제를 해결할 수 있는 방법을 찾았고 이를 내 앱에 성공적으로 적용했습니다. 이제 내 앱은 다양한 기기에서 아름다운 타이포그래피를 표시할 수 있습니다. 이 글이 같은 문제를 겪고 있는 다른 개발자들에게 도움이 되기를 바랍니다.

위 내용은 uniapp 글꼴과 아이콘이 가로로 표시되지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.