2013-01-30 5 views
0

Можно создать дубликат:
Custom font in iPhoneпользовательских шрифтов с UILabel в навигационной панели

Я пытаюсь создать пользовательский ярлык, чтобы установить его в качестве titleView из моих navigationItem, но я m не удалось установить шрифт метки в специальный шрифт, включенный в мой проект.

У меня есть файл пользовательского шрифта под названием «BADER_AL_GORDABIA-2_0.ttf» и реальное имя шрифта, как показано на FontBook является «bader_al gordabia-2» Я следовал следующие шаги:

  1. проверил развертывание цель моего приложения, и он установлен в iOS 5.1.
  2. добавил файл шрифта к ресурсам проекта, и проверено, что оно добавлено в цель сборки в разделе «Ресурсы копирования ресурсов» в фазах сборки.
  3. добавил новый ключ в мой файл info.plist как «Шрифты, предоставляемые приложением», и добавил в него «BADER_AL_GORDABIA-2_0.ttf».
  4. использовал настоящее имя шрифта «bader_al gordabia-2» в методе fontWithName.

Я был в состоянии загрузить шрифт с помощью

UIFont * customFont = [UIFont fontWithName:@"bader_al gordabia-2" size:18.0f]; 

, и я убедился, что customFont не является нулевым (печатая его описание), но проблема в том, что я не могу применить этот пользовательский шрифт UILabel.

мой код:

UILabel * titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(100,10,200,24)]; 
    titleLabel.backgroundColor = [UIColor clearColor]; 
    UIFont * customFont = [UIFont fontWithName:@"bader_al gordabia-2" size:18.0f]; 
    [titleLabel setFont:customFont]; 
    titleLabel.text = @"أخبار الجمعية"; 
    //NSLog(@"%@", [customFont description]); 

    titleLabel.textAlignment = NSTextAlignmentCenter; 
    titleLabel.textColor = [UIColor whiteColor]; 

    [self.navigationItem setTitleView:titleLabel]; 

Я пытался искать переполнение стека, и я не смог найти подходящий ответ. Я пытался также использовать пользовательские метки, как указано в следующей ссылке: http://refactr.com/blog/2012/09/ios-tips-custom-fonts/

ответ

0

Вот что вы должны сделать - Сначала нужно добавить и вызвать следующий метод в любом месте:

+(void)logAllFonts{ 
    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); 
    } 
} 

Это будет регистрировать все fontNames, присутствующих в вашем проекте, включая внешние шрифты, которые вы добавили как в проект, так и в plist.

Теперь вы просматриваете этот список в консоли и находите точное имя шрифта для добавленного шрифта (bader_al gordabia-2). Используйте это имя в fontWithName:

Надеется, что это помогает

+0

Извините, я нашел точное имя шрифта, используя loggAllFonts, но метка все же отказывается применить шрифт к его тексту. – Roula

1

Это, как я это делаю,

UILabel *navLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,0, 300, 100)]; 

navLabel.backgroundColor = [UIColor clearColor]; 
navLabel.text = @"Set Up"; 
navLabel.textColor = [UIColor whiteColor]; 
navLabel.shadowColor = [UIColor colorWithWhite:0.0 alpha:1.0]; 
navLabel.shadowOffset = CGSizeMake(0, -2); 
navLabel.font = [UIFont fontWithName:@"Questrial" size:28.0]; 
navLabel.textAlignment = UITextAlignmentCenter; 
self.navigationItem.titleView = navLabel; 
[navLabel release]; 

только выше кода не работают ... Так что вы должны пойти в ваше приложении PLIST файл и добавить новую строку и добавить этот ключ к ряду,

Fonts provided by application 

и добавить имя шрифта к значению item0,

Согласно моему коду, это «Questrial-Regular.TTF»

Также еще одна вещь,

То есть вы не можете правильно знать имя шрифта. Так что вам нужно найти правильное имя шрифта. Добавьте этот код на свой ViewdidLoad и он будет регистрировать фамилии к терминал.

NSLog(@"%@",[UIFont familyNames]); 

и вы можете найти правильное имя шрифта в соответствии с вашим шрифтом.

Следуйте эти шаги, он работал для меня, и я думаю, что это поможет вам тоже.

Смежные вопросы