由于一些奇怪的原因,在iPhone OS 3.0中这不起作用:我使用numberOfLines = 0
和baselineAdjustment = UIBaselineAdjustmentNone
创建了一个大的全屏UILabel。
它拒绝在左上方显示文字。它始终位于边界框的中心,与左侧对齐。
文档说:
UIBaselineAdjustmentNone调整文字 相对于左上角 边界框。这是默认值 调整。适用于iPhone OS 2.0 以后。
可能是框架错误?我开始用闪亮的新标签来测试它。文本居中。
答案 0 :(得分:10)
默认实现垂直居中文本,不尊重contentMode
属性。在子类中实现drawTextInRect:
。
@implementation TopLeftLabel
-(void) drawTextInRect:(CGRect)inFrame {
CGRect draw = [self textRectForBounds:inFrame limitedToNumberOfLines:[self numberOfLines]];
draw.origin = CGPointZero;
[super drawTextInRect:draw];
}
@end
baselineAdjustment
属性严格适用于调整字体大小以适应宽度的情况。