gpt4 book ai didi

ios - 如何设置 CATextLayer 文本垂直位置?

转载 作者:技术小花猫 更新时间:2023-10-29 10:46:18 29 4
gpt4 key购买 nike

我使用以下代码在我的应用中创建了 UILabelCATextLayer

- (void)viewDidLoad
{
[super viewDidLoad];
self.textLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 90, 20, 20)];
self.textLabel.text = @"1";
self.textLabel.font = [UIFont systemFontOfSize:12];
self.textLabel.backgroundColor = [UIColor redColor];
[self.view addSubview:self.textLabel];

self.textLayer = [CATextLayer layer];
[self.textLayer setString:@"1"];
[self.textLayer setFont:(__bridge CFTypeRef)([UIFont systemFontOfSize:12])];
self.textLayer.backgroundColor = [UIColor greenColor].CGColor;
self.textLayer.frame = CGRectMake(70, 90, 50, 20);
[self.view.layer addSublayer:self.textLayer];
}

结果是

enter image description here

红色的是UILabel,绿色的是CALayer。我想知道如何垂直对齐 CALayer 中的文本,如 UILabel` 所示。

最佳答案

实际上,这对我有用:

self.layer.addSublayer(textLayer)
textLayer.font = font
textLayer.fontSize = font.pointSize
textLayer.frame = CGRectMake(self.layer.bounds.origin.x, ((self.layer.bounds.height - textLayer.fontSize) / 2) - lineWidth, self.layer.bounds.width, self.layer.bounds.height)
textLayer.alignmentMode - kCAAlignmentCenter
textLayer.contentsScale = UIScreen.mainScreen().scale

LineWidth 是我用来“框定”我的边界区域的。这使我的文本在垂直和水平方向上居中。

关于ios - 如何设置 CATextLayer 文本垂直位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18122027/

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