ios – NS在UILabel中的多行中分配字符串

前端之家收集整理的这篇文章主要介绍了ios – NS在UILabel中的多行中分配字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在一个包含几个元素的单元格中有一个UILabel.我需要标签来归因于可以填充标签高度的字符串,即如果需要则进入多行.我设法实现了这一点,如果我在iOS7上运行应用程序,它似乎很好(忽略黄色背景颜色):

这是UILabel的设置:

NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@  %@",sender,content]];
    NSRange selectedRange = NSMakeRange(0,sender.length); // 4 characters,starting at index 22

    [string beginEditing];

    [string addAttribute:NSFontAttributeName
                   value:[AppereanceConfiguration fontMediumWithSize:18]
                   range:selectedRange];

    [string endEditing];

    self.notificationText.attributedText = string;

self.notificationText是我正在谈论的UILabel.在单元格的xib文件中,我将最小字体大小设置为3,将行数设置为0.正如我之前所说,它在iOS 7上完美运行,但在iOS 6上由于某种原因它不知道如何在它自己的单词包装上它会尝试“截断尾部”,因为这是默认情况下在xib中设置的换行模式,导致单元格看起来像这样:

如果我将换行模式更改为Word Wrapping,它会崩溃iOS 6上的应用程序,说:

NSAttributedString invalid for autoresizing,it must have a single spanning paragraph style (or none) with a non-wrapping lineBreakMode.

如何让它在iOS 6上运行?

解决方法

您可以通过执行编译器所声明的操作使其在iOS 6上运行.无论出于何种原因,您需要向NSAttributedString添加NSParagraphStyle属性,以便在iOS 6上运行.

你可以这样做:

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
[YourMutableString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0,[YourMutableString length])];
原文链接:https://www.f2er.com/iOS/333007.html

猜你在找的iOS相关文章