最终由UITextView导致换行的多余空格将被忽略

时间:2019-05-24 20:01:05

标签: swift uitextview nstextcontainer

这是我的代码:

import UIKit

class ViewController: UIViewController {
    init() {
        super.init(nibName: nil, bundle: nil)

        let textView = UITextView(frame: .zero)
        textView.isScrollEnabled = false
        textView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(textView)

        NSLayoutConstraint.activate([
           textView.widthAnchor.constraint(equalToConstant: 150),
            textView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
            textView.centerYAnchor.constraint(equalTo: view.centerYAnchor)
        ])

        // As we can see, LOT'S of whitespace at the end.
        textView.text = "Some Random Text That Has Whitespaces At The End                                                        "

        view.backgroundColor = .yellow
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError()
    }
}

这是结果:

enter image description here

按空格数,它应该创建一个空的换行符。但是,我们可以看到情况并非如此。如果我在字符串的末尾添加另一个字符,将显示换行符(但带有我不想要的字符)。

如果需要,UITextView中如何显示空换行符?

3 个答案:

答案 0 :(得分:2)

使用此:

  

引号中有一些不可见字符,iOS并未将它们视为whiteSpace

答案 1 :(得分:0)

要添加多余的行,请使用“ \ n”例如

textView.text = "Some Random Text That Has Whitespaces At The End \n\n"

结果:

https://i.imgur.com/ju2hfd0.jpg

答案 2 :(得分:-1)

通过将其UITextView的textContainerInset属性设置为您选择的值,可以强制任何UITextView的文本具有填充,即从其边缘缩进。例如,要给文本视图从底部边缘起的50个点插入,可以使用以下代码:

快速版本:5.0

textView.textContainerInset = UIEdgeInsets(top: 0, left: 0, bottom: 50, right: 0)