Мелочь, а приятно!

Вот за что я люблю Apple — за такие «мелочи». Допустим, я хочу сделать UILabel, который должен показывать время. А время я пишу стандартно — через двоеточие «01:15». Вы уже можете видеть в этой записи, что браузер показывает обычное двоеточие. Точно также было и до выхода iOS7, посмотрите на картинку ниже. Двоеточие смещено вниз относительно цифр и имеет квадратную форму точек для данного шрифта.

Снимок экрана 2013-09-24 в 11.11.03

Но с выходом iOS7 и TextKit мы можем делать разные трюки с текстом, с некоторыми ограничениями.

#import <CoreText/CoreText.h>

UIFont *font = [UIFont systemFontOfSize:120.0];

NSArray *timeFeatureSettings = @[
 @{UIFontFeatureTypeIdentifierKey:@(kCharacterAlternativesType),
 UIFontFeatureSelectorIdentifierKey:@(1)}
 ];

UIFontDescriptor *original = [font fontDescriptor];
 UIFontDescriptor *timeDesc = [original fontDescriptorByAddingAttributes:
 @{UIFontDescriptorFeatureSettingsAttribute:timeFeatureSettings}];
 UIFont *timeFont = [UIFont fontWithDescriptor:timeDesc size:0.0];

Теперь, используя шрифт, полученный в последней строчке снова рисуем UILabel и видим совсем другую картину. У нас получились настоящие часы. Мелочь, а приятно! И мне приятно и пользователям!

Снимок экрана 2013-09-24 в 11.10.12

Единственное ограничение здесь в том, что ваш конкретный шрифт может не поддерживать эти новшества. На примере системного шрифта мы видим, что все получилось, но когда я взял нужный мне для приложения шрифт, и загрузил его в приложение, то код не сработал.

а если мы добавим еще атрибутов в шрифт, например, сделаем, чтобы тоненькая цифра 1 не занимала так много места, то сделаем картинку еще лучше.

NSArray *timeFeatureSettings = @[
  @{UIFontFeatureTypeIdentifierKey:@(kCharacterAlternativesType),
    UIFontFeatureSelectorIdentifierKey:@(1)
  },
  @{UIFontFeatureTypeIdentifierKey:@(kNumberSpacingType),
  UIFontFeatureSelectorIdentifierKey:@(kProportionalNumbersSelector)
  }
];

Снимок экрана 2013-09-30 в 10.11.12

Более подробно со всеми новшествами разработчики могут ознакомиться в видео с WWDC 2013 — Using Fonts With Text Kit

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s