如何制作UILabel,将其文本调整到左上角?

时间:2010-05-17 16:32:29

标签: iphone uilabel

由于一些奇怪的原因,在iPhone OS 3.0中这不起作用:我使用numberOfLines = 0baselineAdjustment = UIBaselineAdjustmentNone创建了一个大的全屏UILabel。

它拒绝在左上方显示文字。它始终位于边界框的中心,与左侧对齐。

文档说:

  

UIBaselineAdjustmentNone调整文字   相对于左上角   边界框。这是默认值   调整。适用于iPhone OS 2.0   以后。

可能是框架错误?我开始用闪亮的新标签来测试它。文本居中。

1 个答案:

答案 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属性严格适用于调整字体大小以适应宽度的情况。