UIButton 사용자 정의 글꼴 세로 정렬
내가 야해 UIButton
때 내보기로드를 설정 사용자 지정 글꼴을 사용하는 :
- (void)viewDidLoad
{
[super viewDidLoad];
self.searchButton.titleLabel.font = [UIFont fontWithName: @"FONTNAME" size: 15.0 ];
}
내가 가진 문제는 글꼴이 중심선 위로 떠 다니는 것입니다. 이 줄을 주석 처리하면 기본 글꼴이 세로 중앙에 잘 나타납니다. 그러나 사용자 정의 글꼴로 변경하면 세로 정렬이 중단됩니다.
사용자 정의 글꼴이있는 표 셀에서도 동일한 문제가 발생합니다.
사용자 정의 글꼴이 다른 글꼴만큼 크지 않다는 것을 어딘가에 알려 주어야합니까?
편집 : 방금 사용중인 글꼴이 Windows TrueType 글꼴이라는 것을 알았습니다. Mac의 TextEdit에서 잘 사용할 수 있지만 내 앱의 정렬에만 문제가 있습니다.
UILabel 에서 사용자 정의 설치 글꼴이 올바르게 표시되지 않습니다 . 주어진 해결책이 없었습니다.
다음은 UILabel, UIButton 등에서 동일한 문제가있는 사용자 정의 글꼴에서 작동하는 솔루션입니다. 글꼴 문제는 시스템 글꼴 값에 비해 어 센더 속성이 너무 작다는 사실로 밝혀졌습니다. Ascender는 글꼴 문자 위의 수직 공백입니다. 서체를 수정하려면 Apple Font Tool Suite 명령 행 유틸리티 를 다운로드해야합니다 . 그런 다음 글꼴을 사용하여 다음을 수행하십시오.
~$ ftxdumperfuser -t hhea -A d Bold.ttf
이 생성 Bold.hhea.xml
됩니다. 텍스트 편집기로 열고 ascender
속성 값을 늘리십시오 . 자신에게 가장 적합한 정확한 값을 찾으려면 약간의 실험을해야합니다. 필자의 경우에는 750에서 1200으로 변경했습니다. 그런 다음 다음 명령 줄을 사용하여 유틸리티를 다시 실행하여 변경 사항을 ttf 파일로 다시 병합하십시오.
~$ ftxdumperfuser -t hhea -A f Bold.ttf
그런 다음 앱에서 결과 ttf 글꼴을 사용하십시오.
OS X 엘 캐피 탄
Apple Font Tool Suite 설치 프로그램은 바이너리 파일을 보호 된 디렉토리에 설치하려고하기 때문에 SIP로 인해 OSX El Capitan에서 더 이상 작동하지 않습니다 . 수동으로 추출해야합니다 ftxdumperfuser
. 첫 번째 이후의 포장을 풀고 로컬 디렉토리에 데미지에서 PKG 복사 OS X Font Tools.pkg
와
~$ xar -xf OS\ X\ Font\ Tools.pkg
이제 폴더 fontTools.pkg
로 이동하십시오.
~$ cd fontTools.pkg/
페이로드 추출
~$ cat Payload | gunzip -dc | cpio -i
이제 ftxdumperfuser
바이너리가 현재 폴더에 있습니다. /usr/local/bin/
터미널 응용 프로그램 내부의 모든 폴더에서 다음과 같이 사용할 수 있도록 옮길 수 있습니다.
~$ mv ftxdumperfuser /usr/local/bin/
제목이 아닌 최상위 콘텐츠를 조정하는 문제를 해결했습니다.
예를 들면 다음과 같습니다. button.contentEdgeInsets = UIEdgeInsetsMake (10.0, 0.0, 0.0, 0.0);
행운을 빕니다!
이것이 가장 좋은 대답 이라고 생각 합니다. 어 센더, numberOfHMetrics 등을 사용하지 않고 Glyphs 응용 프로그램으로 가져 오기-내보내기 하고 작업을 완료했습니다. 이 답변 덕분에 https://stackoverflow.com/a/16798036/1207684
이것이 글꼴에 따라 도움이 될지 확실하지 않지만 기준선이 잘못 정렬되었을 수 있습니다.
self.searchButton.titleLabel.baselineAdjustment =
UIBaselineAdjustmentAlignCenters;
Interface Builder에서 시도해 볼 수 있습니다. 다음은이를 수행하는 방법에 대한 스냅 샷입니다.
보시다시피 IB 에서이 작업을 시도하면 자체 장점이 있습니다.
참고 : 이보다 더 나은 답변이 분명히 있습니다 (위의 수백 개의 투표권을 가진 사람).
글꼴 파일을 편집하는 것 외에는 이것에 대한 실제 답변을 찾을 수 없습니다. 어떻게 해야할지 모르겠고 시간이 없었기 때문에 그림을 더 좁게 만들고 셀이 올바르게 정렬 된 것처럼 보이도록 셀을 조정했습니다.
내가 생각하는 더러운 작은 핵,하지만 작동하고 괜찮습니다.
이 글꼴은 문제를 일으킨 유일한 글꼴이므로 글꼴 파일에 문제가 있어야합니다.
실제로이 결론을 내린 것은 아니 었습니다. 이것은 또 다른 게시물입니다. 그러나 그것을 다시 만나면 주석에 넣을 것입니다.
참고 URL : https://stackoverflow.com/questions/7535498/uibutton-custom-font-vertical-alignment
'program tip' 카테고리의 다른 글
문자열에서 단일 문자를 제거하는 방법 (0) | 2020.07.24 |
---|---|
파일 이름에 날짜가 포함 된 Log4net 롤링 매일 파일 이름 (0) | 2020.07.24 |
jquery를 사용하여 뷰포트를 기준으로 요소의 위치 가져 오기 (0) | 2020.07.24 |
ie8 var w = window.open ()-“메시지 : 유효하지 않은 인수.” (0) | 2020.07.24 |
심포니 2 나뭇 가지가 텍스트의 길이를 제한하고 세 개의 점을 넣습니다. (0) | 2020.07.24 |