【问题标题】:Setting NSLineBreakByTruncatingHead has no effect设置 NSLineBreakByTruncatingHead 没有效果
【发布时间】:2014-08-06 23:15:47
【问题描述】:
我有以下几行代码:
textView.textContainer.maximumNumberOfLines = 10;
textView.textContainer.lineBreakMode = NSLineBreakByTruncatingHead;
[textView setText:@"1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11"];
无论我将 lineBreakMode 设置为什么,输出总是不包括 11,但包括 1。我需要截断字符串的开头,而不是结尾。关于为什么这不起作用的任何想法?
【问题讨论】:
标签:
ios
objective-c
uitextview
line-breaks
truncate
【解决方案1】:
这不是换行模式的作用。如果 individual 行的宽度超出了文本视图所能容纳的范围,该模式会导致它在头部被截断而不是换行,但它不会导致文本视图更改它显示的行。
要获得您想要的效果,您必须自己修改字符串。如果它的格式设置为您的测试字符串的格式(带有明确的换行符),那相对容易——-rangeOfString:options:range: 将让您沿着字符串向后搜索,直到找到您想要保留的第 N 行的开头——但是如果您依赖自动换行,那么你必须使用-boundingRectWithSize:options:attributes: 并从头开始切字,直到它适合你需要的大小。