2012-04-28 45 views
29

ok vì vậy tôi đã đọc qua SO và làm tất cả các loại googling nhưng tôi không thể tìm ra lý do tại sao phông chữ của tôi không hoạt động.phông chữ ttf xcode tùy chỉnh không hoạt động

Tôi nghĩ mình đã làm mọi thứ đúng, nhưng khi tôi chạy ứng dụng, văn bản trên nút của tôi xuất hiện với phông chữ hệ thống chuẩn thay vì phông chữ tôi đã nhập. Tôi đã thêm NSLog(@"%@",[UIFont familyNames]); để xem liệu nó có nằm trong danh sách nhưng không phải là không. Điều đó khiến tôi nghĩ rằng tôi đã thiết lập sai.

Tôi hy vọng ai đó có thể giúp tôi hiển thị văn bản trong nhãn của tôi trong phông chữ tùy chỉnh của tôi. Nhờ bất kỳ ai nghĩ rằng họ có thể có bất kỳ đề xuất nào!

Từng bước này là những gì tôi đã làm.

Bước 1: Tôi đã tải xuống tệp .ttf từ internet. Trong công cụ tìm tôi nó trông giống như: enter image description here

Bước 2: Tôi kéo file font vào XCode từ công cụ tìm và kiểm tra "sao chép tập tin thư mục dự án" tùy chọn. Vì vậy, trong dự án của tôi, tôi có thể thấy:

enter image description here

Bước 3: tôi mở phông chữ trong cuốn sách phông chữ để xem những gì tên tập tin thực sự là và tôi thấy điều này: enter image description here

Bước 4 : Tôi đã thêm một khóa vào tệp MyApp-Info.plist của mình với tên tệp từ XCode bao gồm loại tệp. Nó trông giống như thế này:

enter image description here

Bước 5: Và sau đó trong mã của tôi, tôi viết những dòng này:

UIButton *thisLevelButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

[thisLevelButton setBackgroundImage:[UIImage imageNamed:@"ccLSButtonPlayed"] forState:UIControlStateNormal]; 
thisLevelButton.frame = CGRectMake(x, y, BUTTON_WIDTH, BUTTON_HEIGHT); 
thisLevelButton.tag = j; 
[thisLevelButton addTarget:self action:@selector(userSelectedButton:) forControlEvents:UIControlEventTouchUpInside]; 
[thisLevelButton.titleLabel setFont:[UIFont fontWithName:@"PressStartK" size:24]]; 
[thisLevelButton setTitle:[NSString stringWithFormat:@"%i",(j+1)] forState:UIControlStateNormal]; 

// add the button to the panel 
[subScroll addSubview:thisLevelButton]; 

Để tham khảo, đây là những gì được in trong danh sách các họ phông chữ:

(
    Thonburi, 
    "Snell Roundhand", 
    "Academy Engraved LET", 
    "Marker Felt", 
    "Geeza Pro", 
    "Arial Rounded MT Bold", 
    "Trebuchet MS", 
    Arial, 
    Marion, 
    "Gurmukhi MN", 
    "Malayalam Sangam MN", 
    "Bradley Hand", 
    "Kannada Sangam MN", 
    "Bodoni 72 Oldstyle", 
    Cochin, 
    "Sinhala Sangam MN", 
    "Hiragino Kaku Gothic ProN", 
    Papyrus, 
    Verdana, 
    "Zapf Dingbats", 
    Courier, 
    "Hoefler Text", 
    "Euphemia UCAS", 
    Helvetica, 
    "Hiragino Mincho ProN", 
    "Bodoni Ornaments", 
    "Apple Color Emoji", 
    Optima, 
    "Gujarati Sangam MN", 
    "Devanagari Sangam MN", 
    "Times New Roman", 
    Kailasa, 
    "Telugu Sangam MN", 
    "Heiti SC", 
    "Apple SD Gothic Neo", 
    Futura, 
    "Bodoni 72", 
    Baskerville, 
    "Chalkboard SE", 
    "Heiti TC", 
    Copperplate, 
    "Party LET", 
    "American Typewriter", 
    "Bangla Sangam MN", 
    Noteworthy, 
    Zapfino, 
    "Tamil Sangam MN", 
    "DB LCD Temp", 
    "Arial Hebrew", 
    Chalkduster, 
    Georgia, 
    "Helvetica Neue", 
    "Gill Sans", 
    Palatino, 
    "Courier New", 
    "Oriya Sangam MN", 
    Didot, 
    "Bodoni 72 Smallcaps" 
) 
+0

Cảm ơn câu hỏi của bạn !! Tôi đã làm theo các hướng dẫn cho rằng đó là câu trả lời cho một câu hỏi liên quan và CÓ! Vấn đề của tôi đã được khắc phục ngay bây giờ và đó không phải là phông chữ tiếng Anh, mà là tiếng Ba Tư. Tôi đã kéo mái tóc của mình trong hơn hai năm và không bao giờ có thể tìm được giải pháp thích hợp ngay cả với các API tùy chỉnh, v.v. Nhưng dường như Apple đang quan tâm đến thời gian này, cho phép chúng tôi sử dụng phông chữ tùy chỉnh chỉ với việc thêm khóa đó vào thông tin. plist. Cảm ơn bạn một lần nữa! – Neeku

Trả lời

37

Tôi nghi ngờ rằng bạn chưa thêm tệp phông chữ vào mục tiêu của mình để tệp không được sao chép vào tài nguyên của ứng dụng. Mã của bạn hoạt động tốt ở đây và phông chữ không hiển thị dưới dạng "Nhấn Start K" trong danh sách các họ phông chữ.

+0

thankyou !! Điều này thật khó chịu. Tôi đoán khi tôi kéo tập tin trong tôi đã không thực sự sao chép vào mục tiêu. Vì vậy, tôi đã xóa các tập tin ttf, sau đó tự đi đến Add Files để "MyApp". Điều đó đã làm việc – bkbeachlabs

+13

Trình kiểm tra tệp của Xcode ('⌘⌥1') cũng có phần" Thành viên mục tiêu ", nơi bạn có thể kích hoạt hộp kiểm mục tiêu của mình, thay vì xóa và thêm lại tệp. – omz

+0

mẹo tuyệt vời cảm ơn – bkbeachlabs

12

Một khả năng khác là bạn có thể đang gọi sai tên phông chữ khi bạn cố gắng gọi phông chữ của mình. Sử dụng:

Swift 2.1+

//Check which fonts available 
for family: String in UIFont.familyNames() 
{ 
    print("\(family)") 
    for names: String in UIFont.fontNamesForFamilyName(family) 
    { 
     print("== \(names)") 
    } 
} 

Objective C

//Check which fonts available 
for (NSString* family in [UIFont familyNames]) 
{ 
    NSLog(@"FONT %@", family); 

    for (NSString* name in [UIFont fontNamesForFamilyName: family]) 
    { 
     NSLog(@" %@", name); 
    } 
} 

Để tìm tên thật của các phông chữ bạn nên sử dụng với UIFont (tên: "yourFontName", size: 24.0) (nhanh) hoặc [UIFont fontWithName: @ "yourFontName" size: 16.0f] (obj c). Tên phông chữ tùy chỉnh bạn thêm vào plist của bạn phải phù hợp với bất cứ điều gì các tập tin được gọi trong thư mục của bạn (bao gồm cả .ttf hoặc.otf), nhưng mã tham chiếu các phông chữ phải khớp với tên phông chữ bạn nhận được từ đầu ra này. Chúc may mắn!

+1

cảm ơn, tôi đã có một vấn đề tương tự và nó quay ra hệ thống đã tham chiếu các phông chữ như một tên khác nhau sau đó những gì tôi nghĩ nó được. – sudo

+0

Tôi đề nghị mọi người làm điều đó trước khi sử dụng tên phông chữ! – arniotaki

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