我有一个带有attributionText的UITextView,其属性字符串中包含多个新的换行符。
NSMutableAttributedString *info = [[NSMutableAttributedString alloc] initWithString:@""];
NSAttributedString *title = [[NSAttributedString alloc] initWithString: [NSString stringWithFormat:@"%@\n", item.title] attributes:titleAttributes];
NSAttributedString *description = [[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@\n\n", description] attributes:descriptionAttributes]
[info appendAttributedString:bioItemTitle];
[info appendAttributedString:bioItemDescription];
textView.attributedText = info;
我已将textView的textContainer的lineBreakMode设置为NSLineBreakByTruncatingTail。
textView.textContainer.lineBreakMode = NSLineBreakByTruncatingTail;
textView的textContainer也有最大行数。
textView.textContainer.maximumNumberOfLines = 8;
当textView的第8行是新行而不是字符行时,会出现问题。 textContainer通过删除新行并将其替换为下一行书写字符来截断。
如何在设置lineBreakMode时保留新行?
答案 0 :(得分:3)
尝试使用UILabel
代替UITextView
。它似乎在截断新行方面发挥得更好。
答案 1 :(得分:1)
随机尝试一下你已经不是解决问题的机会,但也许是解决办法,但无论如何都可能无法解决,但无论如何:
将maximumNumberOfLines
更改为0
并依靠frames / autolayout来调整文本视图及其容器的大小,可能与设置文本容器{{1}相结合}属性heightTracksTextView
在行的开头插入水平空格或不可见,否则只包含换行 #hacky