2013-09-22 7 views
23

Как бы добавить пользовательский шрифт в Xcode 5 и как бы вы изменили каждую метку в проекте на этот шрифт? Потому что я слышал, что вы можете делать это только программно?Пользовательские шрифты в Xcode 5

+0

[Checkout this link] (http://developmobilesoftware.blogspot.in/2014/03/fetch-list-of-fonts-and-font-family-in.html) – HDdeveloper

+0

[этот учебник] (http:// /bit.ly/1knlZYt) был очень эффективным и быстрым – meghaphone

ответ

2

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

Шагов:

  1. Скачать шрифт .ttf файлы
  2. Перейти к любому ярлыку/TextView в раскадровке и выберите в правом верхнем угле атрибуты инспектора: «Текст» Затем выберите> «приписываемый»
  3. Нажмите маленькую иконку T рядом с названием шрифта, чтобы открыть редактор шрифтов.
  4. Перейдите к значку cog/wheel/setting и выберите «Manage Fonts»
  5. Нажмите вторую справа кнопку «+» и перейдите к своему фон TS .ttf файл, чтобы добавить к коллекции шрифтов системы
  6. Теперь использовать свой шрифт, изменив имя шрифта в раскадровке или код :)

Надежда, что помогает!

5

Да, вам нужно сделать это с помощью кода. Я не думаю, что XCode5 добавил какую-нибудь новую функцию. Чтобы сделать это программно сделать следующее:

сделать класс, который является подклассом UILabel тогда у вас есть что-то вроде Заголовок, который имеет размер 14 шрифта с Helverica-Bold

В файле .h

#import <UIKit/UIKit.h> 

@interface MyLabel : UILabel { 

} 

@end 

В .m файл

#import "MyLabel.h" 

    @implementation MyLabel 

    - (id)initWithCoder:(NSCoder *)coder { 
    self = [super initWithCoder:coder]; 
    if (self) { 
     self.font = [UIFont fontWithName:@"Helvetica-Bold" size:14]; 
    } 
    return self; 
} 

    @end 

Другой пример без использования отдельного суба-класса

-(UILabel *) myTitleLabel { 
    UILabel *label = [[UILabel alloc] init]; 
    label.backgroundColor=[UIColor clearColor]; 
    [label setFont:[UIFont fontWithName:@"Helvetica-Bold" size:14]]; 
    label.textColor=[UIColor colorWithRed:(79.0/255.0) green:(79.0/255.0) blue:(79.0/255.0) alpha: 1]; 
    [label setTextAlignment:NSTextAlignmentLeft]; 
    [label sizeToFit]; 
    return label; 
} 

Затем вы можете использовать класс myTitleLabel для создания объекта, чтобы весь объект titleLabel имел одинаковый цвет и размер шрифта.

+1

Работал для меня ... !!! Спасибо –

69

Вам необходимо установить каждую метку программным путем с помощью специального шрифта.

Чтобы использовать пользовательский шрифт:

1/добавить свой собственный шрифт в вашем проекте, как ресурсы (.ttf шрифта или .otf)

2/в вашем info.plist добавить ключевой UIAppFonts (шрифты, предоставляемый приложение) и и имя каждого пользовательского шрифта (например: SohoGothicStd.ttf)

3/вы можете создать макрос для использования шрифт

#define FONT_SOHO_STD(s) [UIFont fontWithName:@"SohoGothicStd" size:s] 

4/использовать этот макрос на этикетке номинальной Exemple:

_myLabel.font = FONT_SOHO_STD(15.0f); 
+0

Ницца - для простого случая это копоти и легко использовать. Для сложной части вы должны следовать методам подкласса. –

+1

да с моим ответом и вашим ответом это прекрасно :) –

+0

Не используйте определение для строковых значений! Он скопирует его для каждого места, где используется макрос.Вам нужно использовать 'extern NSString * const myFontName' –

15

Я считаю, что вам нужно использовать [UILabel appearance] прокси, чтобы установить специальный шрифт для всех этикеток через приложение. Добавьте следующие строки в свою AppDelegatedidFinishLaunchingWithOptions, чтобы установить собственный шрифт для всех UILabel s в вашем проекте.

UIFont *newFont = [UIFont fontWithName:@"My-Custom-Font-Name" size:14]; 
[[UILabel appearance] setFont:newFont]; 

ПРИМЕЧАНИЕ: Вы должны убедиться, что ваши шрифты в вашем Xcode проекте.

Ниже приведены шаги, которые вы можете выполнить для добавления в проект специального шрифта.

  1. Добавьте пользовательские файлы шрифтов в проект с использованием Xcode как ресурса
  2. Добавить ключ в файл Info.plist называется UIAppFonts.
  3. этот ключ в массив
  4. Для каждого шрифта, который вы должны ввести полное имя файла шрифта (включая расширение) в качестве элементов в UIAppFonts массиве
  5. Сохранить Info.plist

шаги, предпринятые от: Can I embed a custom font in an iPhone application?

+0

, так что нет никакого способа визуально увидеть свой собственный шрифт в раскадровки? – zonabi

+0

@zonabi, как оказалось, вы не можете видеть пользовательские шрифты в раскадровках, и вы должны добавить их программно. –

+0

спасибо. этот метод работал для меня. – zonabi

1

Ответы здесь в порядке, но я бы рекомендовал установить как можно меньше на вашей пользовательской этикетке и определенно не жестко кодировать размер. Вы можете легко сделать это следующим образом:

#import "CustomFontLabel.h" 

@implementation CustomFontLabel 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     [self setFontStyle]; 
    } 
    return self; 
} 

- (id)initWithCoder:(NSCoder *)aDecoder { 
    self = [super initWithCoder:aDecoder]; 

    if (self) { 
     [self setFontStyle]; 
    } 

    return self; 
} 

- (void)setFontStyle { 
    CGFloat fontSize = self.font.pointSize; 

    [self setFont:[UIFont fontWithName:@"LindenHill" size:fontSize]]; 
} 

@end 

Это будет уважать все другие настройки, установленных в вашей раскадровке, что делает его намного легче управлять всем.

+0

Вышеупомянутое решение отлично работает. Но значение fontsize равно 17, хотя я установил размер шрифта 22 для UILabel в xib. Можете ли вы сказать мне, что я что-то упустил? Потому что мне нужны разные размеры шрифта. – Nitesh

+0

Это супер странно, он должен уважать установленный вами размер шрифта и только переопределять шрифт ... – Alper

+0

Я мог бы решить проблемы при изменении шрифта от системы до пользовательского. Спасибо за вашу помощь – Nitesh

1

Вы можете создать собственный шрифт в Xcode, используя следующие шаги:

  1. Импорт тип шрифта в проект (* .ttf файл)
  2. Добавить «Шрифты, предусмотренные приложением» ключ в PLIST из ваших проект.
  3. Добавить пользовательский шрифт в виде массива элементов в «Шрифтах, предоставляемых приложением».
  4. Теперь вы можете использовать шрифт в наклейке:

    [lblName setFont:[UIFont fontWithName:@“CustomFontName” size:14.0]];

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