标签不是从左上角开始的

时间:2016-09-28 04:49:04

标签: objective-c swift

我上传了两张标签“Pick up location”和“Drop location”的图片。此标签在tableview单元格中设置。

在此图片中:

enter image description here

这两个标签设置为numberoflines = 3但文本从中间开始

我想要这个:

enter image description here

我已经使用set属性numberofLines = 0和标签高度> =标签做了这件事。 但设置此属性我必须找到标签实际高度与文本,然后根据标签高度我设置其他控件。

在这种情况下,Sizetofit不起作用

我想:标签高度是固定的。 NumberofLines = 3,标签从左上角开始

感谢您的帮助

1 个答案:

答案 0 :(得分: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中的标签设置为此类。