UIButton setAttributedTitle: forState: не отображается

Я пытаюсь добавить подчеркивание к моему заголовку на пользовательском UIButton, но, следуя примеру найдено здесь, Я не могу заставить его показать на экране.

вот код, который я пытаюсь использовать:

NSMutableAttributedString *commentString = [[NSMutableAttributedString alloc] initWithString:@"The Quick Brown Fox"];

[commentString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0, [commentString length])];

[button setAttributedTitle:commentString forState:UIControlStateNormal];

это не отображается. Но если я просто сделаю обычный, Вот так:

[button setTitle:@"The Quick Brown Fox" forState:UIControlStateNormal];

это отображается нормально. Может кто-нибудь сказать мне, что я упускаю?

1 ответов


Я понял, тут проблема. Я предположил, что он не появляется, потому что я его не вижу. Тем не менее, он появлялся, он точно такого же цвета, как и фон.

я ошибочно полагал, что [button setTitleColor:myColor forState:UIControlStateNormal]; будет цвет, который будет использовать attributedTitle. Однако мой фон черный, и NSMutableAttributedString должен по умолчанию иметь черный цвет.

[commentString addAttribute:NSForegroundColorAttributeName value:myColor  range:NSMakeRange(0, [commentString length])];

делает это правильно.