Невозможно включить межбуквенный интервал (кернинг) в UITabBarItem

Я пытаюсь включить кернинг текста (увеличить интервал между буквами) на метках заголовков UITabBarItem. Но предоставление атрибута NSKernAttributeName для UITabBarItem не имеет никакого значения. Однако два других атрибута работают: NSForegroundColorAttributeName, NSFontAttributeName. Я пробовал как с системным шрифтом, так и с другим шрифтом: SFUIDisplay-Regular.

И ДА, я также пробовал использовать UIControlStateNormal и UIControlStateSelected.

Вот код:

for (UITabBarItem *item in self.tabBar.items)
{
[item setTitleTextAttributes: @{
                    NSKernAttributeName: @(4.0f), /* does nothing */
                    NSForegroundColorAttributeName: [AppStyle whiteColor],
                    NSFontAttributeName: font
                }
                forState:UIControlStateNormal];

атрибут NSKernAttributeName не имеет никакого эффекта.

Я также пробовал делать это во внешнем виде, когда приложение загружается, например:

    NSDictionary *attributes = @{
                             NSKernAttributeName: @(4.0f) /* does nothing */
                             };
[[UITabBarItem appearance] setTitleTextAttributes: attributes
                                         forState: UIControlStateNormal];
[[UITabBarItem appearance] setTitleTextAttributes: attributes
                                         forState: UIControlStateSelected];

Что тоже ничего не делает.

Единственное место, где я смог заставить NSKernAttributeName работать, - это использование setAttributedText в UILabel.

Вы, ребята, знаете, почему установка других атрибутов текста заголовка работает с UITabBarItem, а NSKernAttributeName - нет?


person FranticRock    schedule 21.07.2015    source источник
comment
Вы нашли ответ на свою проблему?   -  person MPG    schedule 30.09.2015
comment
Еще нет. Пришлось пока жить без кернинга на UITabBarItems.   -  person FranticRock    schedule 01.10.2015


Ответы (1)


Для меня это тоже ничего не изменило. Документация Apple проверена по ссылке выше. Можно настроить только четыре клавиши:

NSString *const UITextAttributeFont; 
NSString *const UITextAttributeTextColor; 
NSString *const UITextAttributeTextShadowColor; 
NSString *const UITextAttributeTextShadowOffset; 
person MPG    schedule 30.09.2015