CATextLayer и отслеживание / интервал между символами

Я использую CATextLayer, чтобы использовать пользовательский шрифт в iOS, я знаю, что есть простой способ использовать пользовательский шрифт с Fonts provided by application но это другой шрифт. Мне было интересно, есть ли способ изменить интервал между каждым персонажем? Я не нашел никакой собственности, чтобы сделать это!

EDITED:

 - (void)viewWillAppear:(BOOL)animated { CTFontRef font = [self newCustomFontWithName:@"yeki" ofType:@"ttf" attributes:[NSDictionary dictionaryWithObject:[NSNumber numberWithFloat:16.f] forKey:(NSString *)kCTFontSizeAttribute]]; CGRect screenBounds = [[UIScreen mainScreen] bounds]; normalTextLayer_ = [[CATextLayer alloc] init]; normalTextLayer_.font = font; normalTextLayer_.string = str; normalTextLayer_.wrapped = YES; normalTextLayer_.foregroundColor = [[UIColor purpleColor] CGColor]; normalTextLayer_.fontSize = 50.f; normalTextLayer_.alignmentMode = kCAAlignmentRight; normalTextLayer_.frame = CGRectMake(0.f,100.f, screenBounds.size.width, screenBounds.size.height /1.f); [self.view.layer addSublayer:normalTextLayer_]; CFRelease(font); } 

Вы можете назначить NSAttributedString (или NSMutableAttributedString ) вместо простой NSString для этого слоя и использовать атрибут kCTKernAttributeName (см. kCTKernAttributeName атрибутов строки основного текста ) для настройки кернинга.

Пример:

 CTFontRef font = CTFontCreateWithName(CFSTR("Helvetica"), 30, NULL); NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys: (id)font, kCTFontAttributeName, [NSNumber numberWithFloat:15.0], kCTKernAttributeName, (id)[[UIColor greenColor] CGColor], kCTForegroundColorAttributeName, nil]; NSAttributedString *attributedString = [[[NSAttributedString alloc] initWithString:@"Hello World" attributes:attributes] autorelease]; CFRelease(font); myTextLayer.string = attributedString; 

Это должно дать вам зеленый текст в Helvetica 30 с увеличенным интервалом между символами.

  • CAShapeLayer с границей и цветом заливки и округлением
  • Может ли кто-нибудь объяснить сообщение журнала «CoreAnimation: timed out fence»?
  • Эффект снега с помощью слоя CAReplicatorLayer
  • Анимация штрих-кода CAShapeLayer с CABasicAnimation
  • Обратный вызов прогресса анимации ядра
  • Как наследовать свойства анимации при анимации CALayer с неявной анимацией
  • CABasicAnimation сбрасывается при прокрутке края с помощью UINavigationController
  • Изменение рамки CALayer UIView (self.view.layer.frame = ...), по-видимому, не имеет эффекта
  • Если оператор NSNotificationCenter в iOS
  • На iOS setNeedsDisplay действительно не вызывает вызов drawRect ... если показ CALayer или drawInContext наконец не вызовет drawRect?
  • Странное поведение, анимация UIView с использованием
  • Давайте будем гением компьютера.