2016-09-28 44 views
0

我上传了两张标签“拾取位置”和“放置位置”的图像。这个标签在tableview单元格中设置。标签不从左上角开始

在这张图片:

enter image description here

这两个标签都设置有numberoflines = 3,但文本从中间

开始,我想这一点:

enter image description here

我已经设置了属性numberofLines = 0和标签高度> =的标签。 但设置此属性我必须找到标签的实际高度与文本,然后根据标签的高度我设置其他控件。 标签高度是固定的:

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]; 
     } 
    } 

设置在Interface Builder的标签,此类的。

+0

它不工作。 –

+0

它对我来说非常合适。你确定你已经在界面生成器中将标签的自定义类设置为“MyTopAlignedLabel”吗? – norders

+0

雅,其工作,谢谢 –

相关问题