在uicollectionview IOS中的UILABEL换行符

时间:2014-12-25 21:28:15

标签: ios objective-c xcode uilabel uicollectionview

我在故事板中使用collectionview的单元格原型。在集合视图中,我在单元格中设置了UIIMAGEUILABEL,并以编程方式调用,以便在viewWithTag的帮助下加载所需的图像,以根据需要更改图像和标签。

我的问题是,我无法设置我的标签,以至于无法在单词中创建换行符。包装单词无法为标签提供换行符以包装单词并将标签放在一行中。

我试图从故事板中提取linebreak并且也是以编程方式提供,但是我无法包装我的标签,并且无法在一个单词之后给出换行符。

我的代码:

UILabel *label = (UILabel *)[cell viewWithTag:200];
label.text = [NSString stringWithFormat:@"%@",name];

我的尝试:

label.numberOfLines = 0; // also tried 2 for next line
label.minimumScaleFactor = 0.5;
label.lineBreakMode = UILineBreakModeWordWrap;
label.lineBreakMode = NSLineBreakByWordWrapping;

1 个答案:

答案 0 :(得分:2)

缺少自动换行的最可能原因是UILabel并不知道它不应超过给定的宽度。

有两种表达方式:

  • preferredMaxLayoutWidth上设置属性UILabel ,其值指示不应超出的宽度

  • 设置正确的自动布局约束 - 您可以通过指定宽度约束或指定偏移/插入约束来实现 - 这实际上取决于您正在使用的布局因为存在大量可能的组合。

理智的最佳方法 - 检查它是尝试preferredMaxLayoutWidth方法。如果它有效,那么请尝试确定是否要保留此值集,或者通过查找自动布局权限约束来使布局更加动态。