Почему я не могу изменить шрифт в конструкторе интерфейса? - PullRequest
3 голосов
/ 12 июля 2011

Я изменяю шрифт на другой установленный шрифт в конструкторе интерфейсов, и он всегда остается helvetica. Нужна ли мне лицензия разработчика для смены шрифтов или это что-то еще?

Ответы [ 4 ]

7 голосов
/ 12 июля 2011

Здесь вы можете использовать только те шрифты, которые предусмотрены в fontFamily. Используйте следующий код, чтобы найти поддерживаемый шрифт на устройстве iOS.

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


iOS Fonts: (
    Thonburi,
    "Snell Roundhand",
    "Academy Engraved LET",
    "Marker Felt",
    "Geeza Pro",
    "Arial Rounded MT Bold",
    "Trebuchet MS",
    Arial,
    "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",
    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",
    Futura,
    "Bodoni 72",
    Baskerville,
    "Chalkboard SE",
    "Heiti TC",
    Copperplate,
    "Party LET",
    "American Typewriter",
    AppleGothic,
    "Bangla Sangam MN",
    Noteworthy,
    Zapfino,
    "Tamil Sangam MN",
    "DB LCD Temp",
    "Arial Hebrew",
    "Heiti K",
    Georgia,
    "Heiti J",
    "Helvetica Neue",
    "Gill Sans",
    Chalkduster,
    Palatino,
    "Courier New",
    "Oriya Sangam MN",
    Didot,
    "Bodoni 72 Smallcaps"
)

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

2 голосов
/ 28 сентября 2011

Вы можете сделать это немного проще для себя, сделав подкласс UILabel (или UIButton) и установив шрифт в его методе initWithCoder, который вызывается, когда перья распакованы.Это означает, что вы можете выбрать этот подкласс вместо UILabel в Интерфейсном Разработчике, и у вас есть свобода легко изменять размер шрифта, а не делать это в коде.

Вот мой пример использования шрифта Sabon:

В .h:

@interface UILabelSabon : UILabel {

}

@end

И .m просто:

- (id)initWithCoder:(NSCoder *)decoder {

    if ((self = [super initWithCoder: decoder])) {

        [self setFont: [UIFont fontWithName: @"Sabon" size: self.font.pointSize]];
    }
    return self;
}
2 голосов
/ 28 сентября 2011

Это работает для меня.Замените _someView на родительский вид, содержащий кнопки и метки, для которых вы хотите установить шрифт.В этом примере я ударю все UILabels и UIButton на определенный шрифт.Использование - [UIView subviews] позволяет мне избегать розеток для каждого элемента.Также обратите внимание, что я сохраняю размер шрифта для каждого элемента:

- (void) viewDidLoad
{
    NSArray    *allSubviews;

    allSubviews = [_someView subviews];
    for (UIView *subview in allSubviews)
    {
        if (([subview isKindOfClass: [UILabel class]]) || ([subview isKindOfClass: [UIButton class]]))
        {
            UIFont     *font;
            CGFloat    pointSize;

            font = [(UILabel *) subview font];
            pointSize = font.pointSize;
            [(UILabel *) subview setFont: [UIFont fontWithName: @"Bodoni 72 Oldstyle" size: pointSize]];
        }
    }
}
1 голос
/ 12 июля 2011

Вам просто нужно скачать файл ttf вашего шрифта, а затем перетащить этот файл в папку ресурсов xcode. выберите файл info.plist - щелкните правой кнопкой мыши и выберите открыть как исходный код, а затем добавьте эту строку: -

<key>UIAppFonts</key>
<array>
    <string>yourfontfilename.ttf </string>
</array>

и получите доступ к вашему новому шрифту как

 [UIFont fontWithName:@"yrfontname" size:45]  //remember this fontname of yr font is not file name it is the name of font that can be read by opening this font on font book on mac
...