Ios 包含某些字符的字符串,导致UITextView换行过快 上下文
我试图在文本视图中输入一堆随机文本,并对其进行字符换行,使框中完全充满符号。当文本视图基于文本中的某些字符进行包装时,它似乎在试图聪明地处理这一问题。我已将导致文本视图换行错误的字符列表缩小为以下内容:Ios 包含某些字符的字符串,导致UITextView换行过快 上下文,ios,swift,uitextview,Ios,Swift,Uitextview,我试图在文本视图中输入一堆随机文本,并对其进行字符换行,使框中完全充满符号。当文本视图基于文本中的某些字符进行包装时,它似乎在试图聪明地处理这一问题。我已将导致文本视图换行错误的字符列表缩小为以下内容: ])/+ 可以显示的其他字符包括: [NSAttributedString{ 让characterLimit=9500 让尺寸=500 //问题人物 // ] } ) . > / + 让characterOptions=[“[”,“,”/“] 让codeString=nsMutableAttri
]
)
/
+
可以显示的其他字符包括:
[
NSAttributedString{
让characterLimit=9500
让尺寸=500
//问题人物
// ] } ) . > / +
让characterOptions=[“[”,“,”/“]
让codeString=nsMutableAttributeString.init(字符串:“”)
而codeString.string.characters.count
结果:
但是,没有问题字符的相同代码会产生我想要的结果
import UIKit
func generateRandomText() -> NSAttributedString {
let characterLimit = 9500
let segmentSize = 500
// problem characters
// ] } ) . > / +
let characterOptions = ["[","<","{","(","#","@","=","*","~"]
let codeString = NSMutableAttributedString.init(string: "")
while codeString.string.characters.count < segmentSize {
let addition = NSAttributedString.init(string: characterOptions[Int(arc4random_uniform(9))], attributes: [NSForegroundColorAttributeName : UIColor.whiteColor()])
codeString.appendAttributedString(addition)
}
while codeString.string.characters.count < characterLimit {
codeString.appendAttributedString(codeString)
}
return codeString
}
let textView = UITextView.init(frame: CGRectMake(0, 0, 700, 700))
textView.textContainer.lineBreakMode = .ByCharWrapping
let codeFont = UIFont.init(name: "Menlo", size: 12)
textView.font = codeFont
textView.backgroundColor = UIColor.blackColor()
textView.attributedText = generateRandomText()
导入UIKit
func generateRandomText()->NSAttributedString{
让characterLimit=9500
让尺寸=500
//问题人物
// ] } ) . > / +
让characterOptions=[“[”,“这些特定字符是系统用来定义单词边界的字符,用于单词换行
召唤
textView.textContainer.lineBreakMode = .ByCharWrapping
没有效果,因为UITextView
不支持字符换行
文件:
请注意,定义单词边界有复杂的规则。例如,“1.0”被视为一个单词,而“a.1”被视为两个单词
此外,可能没有完全遵循Unicode规范。文档中是否有解释这一点的地方?@AddisonWebb编辑了我的文章。UITextView上的文档不支持字符换行吗?什么支持字符换行?@AddisonWebb我想没有文档提到这一点。UILa贝尔不知道。
textView.textContainer.lineBreakMode = .ByCharWrapping