Một vấn đề tương tự đã được thảo luận tại Phông chữ được cài đặt tùy chỉnh không được hiển thị chính xác trong UILabel . Không có giải pháp nào được đưa ra.
Đây là giải pháp phù hợp với phông chữ tùy chỉnh của tôi có cùng vấn đề trong UILabel, UIButton, v.v. Vấn đề với phông chữ hóa ra là do thuộc tính ascender của nó quá nhỏ so với giá trị của phông chữ hệ thống. Ascender là một khoảng trắng dọc phía trên các ký tự của phông chữ. Để sửa phông chữ của bạn, bạn sẽ phải tải xuống các tiện ích dòng lệnh của Apple Font Tool Suite . Sau đó lấy phông chữ của bạn và làm như sau:
~$ ftxdumperfuser -t hhea -A d Bold.ttf
Điều này sẽ tạo ra Bold.hhea.xml
. Mở nó bằng một trình soạn thảo văn bản và tăng giá trị của ascender
thuộc tính. Bạn sẽ phải thử nghiệm một chút để tìm ra giá trị chính xác phù hợp nhất với mình. Trong trường hợp của tôi, tôi đã thay đổi nó từ 750 thành 1200. Sau đó, chạy lại tiện ích với dòng lệnh sau để hợp nhất các thay đổi của bạn trở lại tệp ttf:
~$ ftxdumperfuser -t hhea -A f Bold.ttf
Sau đó, chỉ cần sử dụng phông chữ ttf kết quả trong ứng dụng của bạn.
OS X El Capitan
Trình cài đặt Bộ công cụ Phông chữ của Apple không hoạt động nữa trên OSX El Capitan do SIP vì nó cố gắng cài đặt các tệp nhị phân vào một thư mục được bảo vệ. Bạn phải giải nén thủ công ftxdumperfuser
. Đầu tiên copy pkg từ dmg vào một thư mục địa phương sau đó giải nén các OS X Font Tools.pkg
với
~$ xar -xf OS\ X\ Font\ Tools.pkg
Bây giờ điều hướng vào thư mục fontTools.pkg
với
~$ cd fontTools.pkg/
Giải nén tải trọng với
~$ cat Payload | gunzip -dc | cpio -i
Bây giờ ftxdumperfuser
tệp nhị phân nằm trong thư mục hiện tại của bạn. Bạn có thể di chuyển nó đến /usr/local/bin/
để có thể sử dụng nó trong mọi thư mục bên trong ứng dụng đầu cuối với phần sau.
~$ mv ftxdumperfuser /usr/local/bin/