Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 包含某些字符的字符串,导致UITextView换行过快 上下文_Ios_Swift_Uitextview - Fatal编程技术网

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