2010-05-17 2 views
4

이상한 이유로 iPhone OS 3.0에서는 작동하지 않습니다. numberOfLines = 0baselineAdjustment = UIBaselineAdjustmentNone이라는 큰 전체 화면 UILabel을 만들었습니다.텍스트를 왼쪽 상단으로 조정하는 UILabel을 만드는 방법은 무엇입니까?

텍스트를 왼쪽 상단에 표시하는 것을 거부합니다. 항상 경계 상자의 가운데에 있으며 왼쪽에 맞 춥니 다.

문서는 말한다 :

UIBaselineAdjustmentNone가 경계 상자의 왼쪽 상단에 텍스트 상대를 조정합니다. 기본값은 입니다. iPhone OS 2.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 

글꼴 크기가 너비에 맞게 조정될 때 속성이 엄격히 적용됩니다.

관련 문제