2016-09-28 3 views
0

레이블 "Pick up location"과 "Drop location"의 두 이미지를 업로드했습니다. 이 레이블은 tableview 셀에 설정됩니다. 이 이미지에서레이블이 상단 왼쪽부터 시작하지 않음

:

enter image description here

두 레이블은 중간

부터 numberoflines = 3 만 텍스트로 설정 그리고 난이 원하는됩니다

enter image description here

I을 이미 setof 속성 numberofLines = 0 및 label height> =를 사용하여이 작업을 수행했습니다. 하지만이 속성을 설정하면 텍스트의 실제 높이를 레이블로 찾은 다음 레이블 높이에 따라 다른 컨트롤을 설정해야합니다. 라벨의 높이가 고정되어

Sizetofit이 경우

내가 원하는 작동하지 않습니다. NumberofLines = 3 및 레이블이

왼쪽 상단에서 시작 당신의 도움이

답변

0

UILabel의의 서브 클래스를 확인하고 MyTopAlignedLabel 호출 주셔서 감사합니다.

그런 다음 MyTopAlignedLabel.m 파일에 추가하십시오

- (void)drawTextInRect:(CGRect)rect { 

     if (self.text) { 
      CGSize labelStringSize = [self.text boundingRectWithSize:CGSizeMake(CGRectGetWidth(rect), CGFLOAT_MAX) 
                  options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading 
                  attributes:@{NSFontAttributeName:self.font} 
                  context:nil].size; 

      CGFloat height = MIN(ceilf(labelStringSize.height), CGRectGetHeight(rect)); 

      [super drawTextInRect:CGRectMake(0, 0, rect.size.width, height)]; 

     } else { 
      [super drawTextInRect:rect]; 
     } 
    } 

이 클래스의 수 인터페이스 빌더의 레이블을 설정합니다.

+0

작동하지 않습니다. –

+0

완벽하게 작동합니다. Interface Builder에서 레이블의 커스텀 클래스를'MyTopAlignedLabel'으로 설정 했습니까? – norders

+0

예, 그 일, 고맙습니다. –

관련 문제