Вопросительный знак при нажатии или удерживании значков шрифта

Поэтому я недавно начал немного переделывать свое приложение, чтобы оно стало совместимым с 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];
Другие вопросы по тегам