我正在开展一个项目,我需要将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
内工作。
任何帮助将不胜感激!
答案 0 :(得分:0)
制作单元格的自定义布局,并使用自定义单元格内的约束排列UILabel。由于您处于自定义布局中,因此约束应该可以解决问题。
答案 1 :(得分: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
方法不适用于自动布局,您可以查看另一个answer from SO来修复它。