Tôi đang cố gắng để có được một bộ phông chữ Neo Sans Pro hoạt động trên iPhone. Tôi có bốn trọng số: Ánh sáng, Thông thường, Trung bình, In đậm dưới dạng tệp OTF (NeoSansPro-Light.otf, -Regular.otf, v.v.). Các tệp được bao gồm trong bản dựng và được đăng ký trong info.plist.Phông chữ tùy chỉnh không hiển thị chính xác trên iOS
Gọi [UIFont fontNamesForFamilyName:@"Neo Sans Pro"]
trả về một mảng có 4 mục nhập, ví dụ: "NeoSansPro-Light".
Tôi có thể truy xuất đối tượng phông chữ cho từng chuỗi này bằng cách sử dụng UIFont fontWithName:size:
.
Tuy nhiên, khi tôi vẽ văn bản với chúng, các phiên bản Ánh sáng, Bình thường và Trung bình đều vẽ giống hệt nhau và trông giống như phiên bản Light. Phiên bản Bold vẽ khác nhau.
Theo Sách phông, mỗi tệp phông chữ có chứa các hình tượng khác nhau.
Tôi hoàn toàn bối rối - bất kỳ manh mối nào tôi cần làm?
[Added] Một số nghiên cứu kỹ hơn:
NSArray *fonts = [UIFont fontNamesForFamilyName:@"Neo Sans Pro"];
for (NSString *fname in fonts) {
UIFont *font = [UIFont fontWithName:fname size:12.0];
NSLog(@"name: %@ font: %@", fname, font);
}
Chạy mã này cung cấp cho các dữ liệu ghi nhận như sau:
name: NeoSansPro-Light font: <UICFFont: 0x66304a0> font-family: "Neo Sans Pro"; font-weight: normal; font-style: normal; font-size: 12px
name: NeoSansPro-Regular font: <UICFFont: 0x66304a0> font-family: "Neo Sans Pro"; font-weight: normal; font-style: normal; font-size: 12px
name: NeoSansPro-Medium font: <UICFFont: 0x66304a0> font-family: "Neo Sans Pro"; font-weight: normal; font-style: normal; font-size: 12px
name: NeoSansPro-Bold font: <UICFFont: 0xaa06070> font-family: "Neo Sans Pro"; font-weight: bold; font-style: normal; font-size: 12px
Vì vậy, ba phông chữ hiển thị cùng thực sự là giống nhau. Nhưng có bốn trọng lượng phông chữ và bốn phông chữ trong bản dựng.
Cũng thử dưới dạng tệp TTF, nhưng cũng đã xảy ra –