Атрибуты атрибута заголовка, установленные в UIButton в Interface Builder, игнорируются в приложении.

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

Когда я загружаю свое приложение, цвет сохраняется, но приложение вернет шрифт обратно к системному стандарту...

Кто-нибудь испытывает это или знает способ исправить? Старался избегать установки атрибутных названий в коде.

Если это имеет значение, шрифт, который я использую, - Open Sans, и он корректно отображается на других ярлыках, где я указал шрифт в коде.

Ответ 1

Вы пытались выбрать текст, прежде чем менять шрифт кнопки? example?

Ответ 2

У меня была такая же проблема неделю назад. Я тоже использовал Open Sans. Но каждый раз, когда я пытался построить, я получил ошибку компиляции, которая нигде не указывала.

В любом случае.. Я просто добавил ярлык к кнопке и настроил ее так, как хотел.

Ответ 3

 NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
    [style setAlignment:NSTextAlignmentCenter];
    [style setLineBreakMode:NSLineBreakByWordWrapping];

    NSDictionary *dict1 = @{NSFontAttributeName:[UIFont fontWithName:@"Varela Round" size:15.0f],
                            NSForegroundColorAttributeName:[UIColor whiteColor],
                            NSParagraphStyleAttributeName:style};
    NSDictionary *dict2 = @{NSFontAttributeName:[UIFont fontWithName:@"Varela Round"  size:10.0f],
                            NSForegroundColorAttributeName:[UIColor whiteColor],
                            NSParagraphStyleAttributeName:style};

    NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] init];
    [attString appendAttributedString:[[NSAttributedString alloc] initWithString:@"Expensed\n"    attributes:dict1]];
    [attString appendAttributedString:[[NSAttributedString alloc] initWithString:@"Tap to edit"      attributes:dict2]];
    [cell.expenseTripButton setAttributedTitle:attString forState:UIControlStateNormal];
    [[cell.expenseTripButton titleLabel] setNumberOfLines:0];
    [[cell.expenseTripButton titleLabel] setLineBreakMode:NSLineBreakByWordWrapping];

Ответ 4

У меня была такая же проблема с вами, но с UIButton, My UILable был изменен на новую строку, и я уверен, что это было изменено в построителе интерфейса. Но это все еще старая строка при ее создании. Я открыл конструктор интерфейса в исходном коде. Поиск старой строки, она все еще там. Просто удалите его, чтобы исправить проблему. (Я не знаю, почему это происходит). Возможно, вам следует открыть IB, чтобы убедиться.

Надеюсь, это поможет вам.