我无法动态添加多行UILabel。这是我得到的结果:



我希望“摘要”框中的标签自然包装。这是我用来添加标签的代码:

-(void)setSummary{
    summaryContentLabel = [[UILabel alloc] init];
    summaryContentLabel.numberOfLines=0;
    summaryContentLabel.lineBreakMode=NSLineBreakByWordWrapping;
    summaryContentLabel.text=self.summary;
    summaryContentLabel.font=[UIFont fontWithName:@"Helvetica" size:13.0];

    [summaryView addSubview:summaryContentLabel];
    [summaryContentLabel  setTranslatesAutoresizingMaskIntoConstraints:NO];
    NSDictionary *views = NSDictionaryOfVariableBindings(summaryView,summaryContentLabel ,summaryLabel);
    [summaryView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[summaryLabel]-5-[summaryContentLabel(==100)]-5-|" options:nil metrics:nil views:views]];

}


您会发现这本书的书名毫无疑问地包裹着我想要的方式。那是在IB完成的。不幸的是,我必须在代码中添加该标签。自动布局也是一项要求。

最佳答案

弄清楚了。我需要为标签的宽度添加一个附加约束,如下所示:

[summaryView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[summaryContentLabel]-|" options:nil metrics:nil views:views]];

10-08 17:56