Я пытаюсь включить кернинг текста (увеличить интервал между буквами) на метках заголовков 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 - нет?