gpt4 book ai didi

iphone - CATextLayer 和字符之间的跟踪/间距

转载 作者:可可西里 更新时间:2023-11-01 03:07:55 31 4
gpt4 key购买 nike

我正在使用 CATextLayer ,以便在 iOS 中使用自定义字体,我知道有一种简单的方法可以通过 应用程序提供的字体 使用自定义字体,但这是不同的字体。我想知道有没有办法改变每个字符之间的间距?我没有找到任何属性(property)这样做!

编辑:

- (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 属性(参见 Core Text String Attributes Reference )调整字距。

例子:

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 中增加字符间距的绿色文本。

关于iphone - CATextLayer 和字符之间的跟踪/间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7299312/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com