Trước hết, tôi giả định rằng SpriteKit không tạo ra bất kỳ sự khác biệt nào.
- Bạn cần sao chép phông chữ .otf hoặc .ttf vào dự án của mình. Ví dụ trong các tệp hỗ trợ.
- Bạn cần chỉnh sửa tệp .plist . Thêm khóa "Phông chữ do ứng dụng cung cấp" vào bảng xếp hạng của bạn và trong Mục 0, sao chép tên tệp chính xác của phông chữ bạn đã sao chép vào tệp hỗ trợ CÓ phần mở rộng. Ví dụ: "JosefinSansStd-Light_0.otf"
- Đảm bảo rằng phông chữ bạn đã nhập vào ứng dụng của mình đang được đóng gói vào chính ứng dụng. Làm điều đó bằng cách chọn Mục tiêu của bạn , sau đó Xây dựng các giai đoạn , sau đó Sao chép Tài nguyên Gói . Nếu bạn không thấy phông chữ của mình trong đó, hãy kéo phông chữ đó khỏi Tệp hỗ trợ .
Cuối cùng, bạn muốn liệt kê tất cả các phông chữ của mình khi ứng dụng khởi động chỉ để xem tên có thể sử dụng cho phông chữ của bạn. Bạn sẽ làm được điều đó với đoạn mã nhỏ này:
NSArray *fontFamilies = [UIFont familyNames];
for (int i = 0; i < [fontFamilies count]; i++)
{
NSString *fontFamily = [fontFamilies objectAtIndex:i];
NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
NSLog (@"%@: %@", fontFamily, fontNames);
}
Tìm kiếm phông chữ của bạn trong kết quả in, ví dụ: tôi sẽ tìm kiếm "Josefin" và tôi sẽ thấy tên phông chữ thực tế đó là "JosefinSansStd-Light". Sau đó, bạn chỉ cần sử dụng phông chữ đó bằng cách:
UIFont *customFont = [UIFont fontWithName:@"JosefinSansStd-Light" size:20];
Trong iOS8, bạn thêm phông chữ của mình trực tiếp vào dự án và chúng hiển thị trong trình tạo giao diện. Sửa đổi mã của bạn để giải quyết vấn đề này nhưng đặt phông chữ theo chương trình cho iOS7 và chọn nó trong trình tạo giao diện xCode6. Tái bút. Trình tạo giao diện trong xCode6 cung cấp cho bạn tên phông chữ chính xác mà bạn có thể sao chép-dán vào mã bên dưới.
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
if(SYSTEM_VERSION_LESS_THAN(@"8.0"))
{
UIFont *customFont = [UIFont fontWithName:@"OpenSans-Light" size:32];
self.registerLabel.font = customFont;
}
Hy vọng điều này sẽ giúp, cổ vũ.