2009-06-14 31 views
6

Tôi muốn sử dụng một số phông chữ không phải là một phần của hệ điều hành iPhone. Tôi đã nhìn thấy các trò chơi sử dụng phông chữ không chuẩn. Tôi có thể cài đặt phông chữ, tạo hình ảnh cho từng ảnh trong Photoshop và sau đó sử dụng những hình ảnh đó trong ứng dụng iPhone. Tuy nhiên, tôi không nghĩ đó là một cách thực tế để đi. Nếu màu hoặc màu cần được điều chỉnh (vì nền) hoặc kích thước, tôi sẽ phải thiết kế lại mọi phông chữ tôi đang sử dụng. Có cách nào tốt hơn để làm điều này?Sử dụng phông chữ không có trên iPhone

Tôi đọc số này Can I embed a custom font in an iPhone application? và tải xuống ứng dụng nhãn phông chữ nguồn mở. Tuy nhiên, nó bị treo hầu hết thời gian khi tôi thử sử dụng các phông chữ cụ thể. Liên quan đến nhận xét cuối cùng về việc sử dụng UIFont với fontWithName: size, chắc chắn không hoạt động. Biến phông chữ của bạn sẽ là số không. Liệt kê tất cả các phông chữ có sẵn cho thấy lý do tại sao - không có phông chữ tùy chỉnh nào có trong danh sách.

Tôi cũng đọc How do I include a font with my iPhone application?, điều này chắc chắn không hoạt động. Giống như nhận xét cuối cùng trong liên kết ở trên.

+0

Nhiều trò chơi sử dụng hiển thị phông chữ của riêng họ. –

+0

Bạn có cần hiển thị phông chữ OpenGL không? hoặc bạn muốn sử dụng phông chữ tùy chỉnh bên trong ứng dụng Cocoa-Touch điển hình? – Goles

Trả lời

7

Câu trả lời đúng là sử dụng FontLabel, có thể được tìm thấy trên GitHub. http://github.com/zynga/FontLabel

Tôi đã sử dụng mã đó trong một số dự án thực tế và nó hoàn toàn tuyệt vời.

UPDATE:

Tính đến iOS 3.2 (iPad chỉ) & iOS 4 trên iPhone, bạn có thể gói phông chữ TTF trong gói ứng dụng của bạn. Sau khi nhập chúng vào Info.plist của bạn bằng cách sử dụng phím UIAppFonts.

Ba bước hướng dẫn tại đây: http://kgriff.posterous.com/45359635

+0

Như @David Dunham cho biết, trò chơi thường sử dụng một kiểu hiển thị phông chữ khác, được gọi là hiển thị phông bitmap. Nó thực sự hiển thị tọa độ từ một hình ảnh chứ không phải là vectơ dựa trên toán học và được giới hạn ở kích thước được chỉ định trong hình ảnh. –

0

này buồn bã không phải là một câu trả lời ngay lập tức, nhưng có vẻ như rằng trong tương lai, bạn sẽ có thể bao gồm các phông chữ tùy chỉnh như là một phần của ứng dụng của bạn:

UIAppFonts (Mảng - iPhone OS) xác định bất kỳ ứng dụng phông chữ được hỗ trợ nên được cung cấp thông qua các cơ chế thông thường. Mỗi mục trong mảng là một chuỗi chứa tên của tệp phông chữ (bao gồm đuôi tệp) nằm trong gói của ứng dụng. Hệ thống tải các phông chữ được chỉ định và làm cho chúng sẵn sàng để ứng dụng sử dụng khi ứng dụng đó chạy.

Thật không may, tính năng này chỉ hoạt động trong iPhone OS 3.2, là phiên bản dành riêng cho iPad. Dường như rất có khả năng tính năng này sẽ có sẵn trong các phiên bản hệ điều hành iPhone trong tương lai.

Link: http://developer.apple.com/iPhone/library/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW18

(đây là tài liệu công cộng duy nhất tôi có thể tìm thấy trên trang web của Apple)

3

Giải pháp là để thêm một tài sản mới "Phông chữ được cung cấp bởi ứng dụng" vào tập tin info.plist của bạn.

Sau đó, bạn có thể sử dụng phông chữ tùy chỉnh của mình như bình thường UIFont.

2

Điều này thực sự khá dễ dàng.

Bạn bao gồm ttf của mình trong gói ứng dụng. Bạn thêm khóa Fonts provided by application/UIAppFonts vào ứng dụng của mình, đây là một loạt tên tệp cho các phông chữ bạn đang bao gồm (bao gồm cả phần mở rộng), ví dụ::

enter image description here

Bạn có thể sử dụng font chữ khá dễ dàng sử dụng UIFont:

self.label.font = [UIFont fontWithName:@"Wingdings" size:23.0f]; 

này hoạt động trên tất cả các phiên bản iOS từ 3.2, trong đó có trên iPhone từ iOS 4.

Các vấn đề liên quan