Ios 什么是UILabel';s垂直对齐算法?

Ios 什么是UILabel';s垂直对齐算法?,ios,uilabel,uifont,Ios,Uilabel,Uifont,关于苹果未能为UILabel提供垂直对齐API,这里有很多问题,但实际的垂直对齐是如何工作的呢?字符串的边界框(参见sizeWithFont)是否居中?或字体的x高度(或大写字母高度?),以便基线保持不变,而不考虑升序和降序?或者什么?以下是可以用来垂直对齐UILabel的代码。我看不到苹果在向您提供API方面有任何失败。必须使用label.transform=CGAffineTransformMakeRotation(-M_PI/2);您可以完全控制高度/宽度和对齐方式。希望这有帮助

关于苹果未能为
UILabel
提供垂直对齐API,这里有很多问题,但实际的垂直对齐是如何工作的呢?字符串的边界框(参见
sizeWithFont
)是否居中?或字体的x高度(或大写字母高度?),以便基线保持不变,而不考虑升序和降序?或者什么?

以下是可以用来垂直对齐UILabel的代码。我看不到苹果在向您提供API方面有任何失败。必须使用label.transform=CGAffineTransformMakeRotation(-M_PI/2);您可以完全控制高度/宽度和对齐方式。希望这有帮助

    rect = CGRectMake(0, 5, 130, 30);
    label = [[UILabel alloc] initWithFrame:rect];
    label.tag =1;
    label.font = [UIFont systemFontOfSize:15];
    label.adjustsFontSizeToFitWidth = NO;
    label.textAlignment = UITextAlignmentLeft;
    label.textColor = [UIColor whiteColor];
    label.transform = CGAffineTransformMakeRotation (-M_PI/2);
    label.backgroundColor = [UIColor colorWithRed:0.48 green:0.62 blue:0.79 alpha:1.0];
    [yourview or self addSubview:label];

下面是可以用来垂直对齐UILabel的代码。我看不到苹果在向您提供API方面有任何失败。必须使用label.transform=CGAffineTransformMakeRotation(-M_PI/2);您可以完全控制高度/宽度和对齐方式。希望这有帮助

    rect = CGRectMake(0, 5, 130, 30);
    label = [[UILabel alloc] initWithFrame:rect];
    label.tag =1;
    label.font = [UIFont systemFontOfSize:15];
    label.adjustsFontSizeToFitWidth = NO;
    label.textAlignment = UITextAlignmentLeft;
    label.textColor = [UIColor whiteColor];
    label.transform = CGAffineTransformMakeRotation (-M_PI/2);
    label.backgroundColor = [UIColor colorWithRed:0.48 green:0.62 blue:0.79 alpha:1.0];
    [yourview or self addSubview:label];

我相信OP指的是“正常”(水平)绘制时文本的垂直位置,而不是文本的方向。对于一条线,它通常位于中心,垂直。我相信OP是指“正常”(水平)绘制时文本的垂直位置,而不是文本的方向。对于一条线,它通常位于中心,垂直。