0

我正在做一个需要并排排列的项目3 UILabels。让我用一个例子来解释它。

例如,我有以下句子。"Tim Moore commented on the little bear story" 现在我的三个UILabels将包含:

LABEL 1 --> Tim Moore
LABEL 2 --> commented on
LABEL 3 --> the little bear story

另一个例子:

Dave Smits likes the status "We and only we can me a knew future and only we nobody else can make changes, so don't stop now !"

LABEL 1 --> Dave Smits
LABEL 2 --> likes the status
LABEL 3 --> "We and only we can me a knew future and only we nobody else can make changes, so don't stop now !"

就像你在第二个例子中看到的那样,句子要长得多。

我现在的问题是如何将这三条UILabels线排成一行,这样我才能得到一个很好的句子。我将它分成三个的原因UILabels是因为我需要UITapgestures在每个UILabel.

我正在UITableviewCell使用autolayout.

任何帮助,将不胜感激 !

4

2 回答 2

0

对单元格进行自定义布局,并将 UILabel 与自定义单元格内的约束对齐。由于您处于自定义布局中,因此约束应该可以解决问题。

于 2013-11-07T14:10:07.723 回答
0

您可以使用那段代码来排列标签。设置 numberOfLines:0 让它们成为多行。

-(void)adjustLabels
{
    [self.label1 setText:@"Dave Smits"];
    [self.label2 setText:@"likes the status"];
    [self.label3 setText:@"We and only we can me a knew future and only we nobody else can make changes, so don't stop now !"];

    [self.label1 setNumberOfLines:0];
    [self.label1 sizeToFit];
    CGRect frameFor2 = self.label2.frame;
    frameFor2.origin.x = self.label1.frame.origin.x + 3.f; //add some space between labels
    [self.label2 setFrame:frameFor2];

    [self.label2 setNumberOfLines:0];
    [self.label2 sizeToFit];
    CGRect frameFor3 = self.label3.frame;
    frameFor3.origin.x = self.label2.frame.origin.x + 3.f;
    [self.label3 setFrame:frameFor3];

    [self.label3 setNumberOfLines:0];
    [self.label3 sizeToFit];
}

sizeToFit方法不适用于自动布局,您可以查看SO 的另一个答案来修复它。

于 2013-11-07T14:39:52.710 回答