Не удается изменить пользовательский размер UIFont на UIButton

у меня есть кнопка, на которой я использую пользовательский UIFont для отображения текста. Шрифт загружается правильно и правильно применяется к заголовку кнопки. Моя проблема в том, что я не могу изменить размер шрифта:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(loginButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Login" forState:UIControlStateNormal];
button.frame = CGRectMake(63.0, 200.0, 194.0, 60.0);
button.titleLabel.font = [UIFont fontWithName:@"My-Font" size:8.0f];
[self.view addSubview:button];

независимо от того, что я вкладываю в размер шрифта, я получаю размер по умолчанию. С другой стороны, если я сделаю что-то подобное:

button.titleLabel.font = [UIFont systemFontOfSize:32.0f];

Я получаю размер шрифта 32, однако, конечно, я не получаю свой собственный шрифт. Итак, как установить размер для пользовательского шрифта?

(I использовать Xcode 4.6.3)

5 ответов


чтобы получить имя шрифта, вы должны пройти в fontWithName:size:, откройте шрифт с помощью Шрифты app, затем посмотрите на PostScript name собственность. Убедитесь, что вы добавили его в тоже.


Кажется, что ваш объект UIFont не создается правильно и возвращается nil.

Это лучший учебник, который я нашел по вводу пользовательских шрифтов. Удачи ;)

http://refactr.com/blog/2012/09/ios-tips-custom-fonts/


этого:

    NSMutableDictionary *fontsByFamilyName = [NSMutableDictionary dictionary];
    NSArray *sortDescriptors = [NSArray arrayWithObject:[[[NSSortDescriptor alloc] initWithKey:@"self" ascending:YES] autorelease]];

    NSArray *familyNames = [[UIFont familyNames] sortedArrayUsingDescriptors:sortDescriptors];
    for (NSString *aFamilyName in familyNames) {
        NSArray *fontNames = [[UIFont fontNamesForFamilyName:aFamilyName] sortedArrayUsingDescriptors:sortDescriptors];

        [fontsByFamilyName setObject:fontNames forKey:aFamilyName];
        NSLog(@"fonts :%@", fontsByFamilyName);           
    }

найдите имя вашего шрифта" iOS"... Я нашел свои cusom с помощью этого метода. Если нет, давайте проверим, как вы добавили свой шрифт (возможно действие забыли). Источник: http://forgecode.net/2010/08/uifont-name-grabber/


интересно, что это оказался мой Mac. Когда я дал своему другу установить их, у него не было проблем. Мой Mac на старой стороне, так что, возможно, это было причиной. Вот спецификации:

**Mac:** MacBook Pro 15" (Late 2008)
**Processor:**  2.4 GHz Intel Core 2 Duo
**Memory:** 4 GB 1067 MHz DDR3
**Graphics:** NVIDIA GeForce 9600M GT 256 MB

передача " nil " для "My-Font" позволяет изменять размер текста для шрифта по умолчанию-без необходимости знать, какой фактический шрифт используется:

button.titleLabel.font = [UIFont fontWithName:nil size:10.0f];