Вопросительный знак при нажатии или удерживании значков шрифта
Поэтому я недавно начал немного переделывать свое приложение, чтобы оно стало совместимым с iOS 11. К счастью, большая часть этого кажется.
Однако я заметил, что на моей панели инструментов, если я коснусь или коснусь и удержу значок, который предоставляется в виде ttf-файла из fontello, я получаю окно с вопросительным знаком.
Пример значка:
menu = [[UIBarButtonItem alloc] initWithTitle:@"\ue811" style:UIBarButtonItemStylePlain target:self action:@selector(openMenu:)];
[menu setTitleTextAttributes:@{NSFontAttributeName:
[UIFont fontWithName:@"fontello"
size:23],
NSForegroundColorAttributeName:[[UIColor alloc] initWithWhite:1.f alpha:1.f]}
forState:UIControlStateNormal];
Работает нормально в симуляторе 10.3.1. Просто iOS 11, похоже, обделена. Я читал об исправлениях для устройств, что означает обновление ОС, но симулятор работает под управлением 11.2, поэтому в теории это должно быть исправлено.
Кто-нибудь еще имеет эту проблему? Знаете ли вы исправить?
2 ответа
Просто добавьте текстовые атрибуты заголовка для UIControlStateSelected также:
[menu setTitleTextAttributes:@{NSFontAttributeName:
[UIFont fontWithName:@"fontello"
size:23],
NSForegroundColorAttributeName:[UIColor greenColor]}
Форстат:UIControlStateSelected];
Как упомянуто в комментарии, iOS 11 требует, чтобы у вас была настройка для нормального состояния и выбранного / выделенного состояния. Ниже то, что работает для меня. Не идеально иметь дополнительный код в зависимости от того, сколько у вас кнопок, ну да ладно.
[menu setTitleTextAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"fontello"size:23],
NSForegroundColorAttributeName:[[UIColor alloc] initWithWhite:0.f alpha:1.f]}
forState:UIControlStateNormal];
[menu setTitleTextAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"fontello"size:23],
NSForegroundColorAttributeName:[[UIColor alloc] initWithWhite:0.f alpha:0.5f]}
forState:UIControlStateHighlighted];