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