什么是UILabel的垂直对齐算法?

时间:2011-04-01 22:13:38

标签: ios uilabel uifont

这里有ample discussion关于Apple未能为UILabel提供垂直对齐API的问题,但实际的垂直对齐是如何工作的?字符串的边界框(参见sizeWithFont)是否居中?或字体的x高度(或帽高?),以便无论上升和下降,基线都保持不变?或者是什么?

1 个答案:

答案 0 :(得分:0)

以下是可用于垂直对齐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];