Подтвердить что ты не робот

Отрегулируйте расстояние между буквами в iOS 7

В iOS 7 при навигации по новому жестов-перехода из-за границы экрана название кнопки "Назад" ( "Художники" ) исчезает от розового (в примере ниже) и имеет регулярный вес шрифта быть черным и иметь жирный шрифт.

enter image description here

Мне кажется, что анимация использует две разные метки для достижения этого эффекта; один затухает, когда другой исчезает. Однако Apple каким-то образом скорректировала шрифт так, чтобы обычная метка идеально перекрывала жирный шрифт, создавая иллюзию того, что одна метка морфинга между двумя разными весами и цветами.

Они просто отрегулировали расстояние между буквами на обычном шрифте так, чтобы оно соответствовало полужирным? В таком случае, как это будет достигнуто в iOS 7? Есть ли у Text Kit какие-либо удивительные возможности для этого или как мне это сделать?

4b9b3361

Ответ 1

Вы можете отрегулировать расстояние между буквами так, используя NSAttributedString.

В Objective-C:

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"The Clash"];
[attributedString addAttribute:NSKernAttributeName
                         value:@(1.4)
                         range:NSMakeRange(0, 9)];

self.label.attributedText = attributedString;

В Swift:

let attributedString = NSMutableAttributedString(string: "The Clash")
attributedString.addAttribute(NSKernAttributeName, value: CGFloat(1.4), range: NSRange(location: 0, length: 9))

label.attributedText = attributedString

Дополнительная информация о кернинге доступна в Типографские понятия из руководства по программированию текста.

Я не думаю, что есть функция TextKit, которая автоматически сопоставляет шрифт между жирным шрифтом и регулярным текстом.