忽略导致 UITextView 末尾换行的额外空格
Extra whitespace that causes a newline by UITextView at end is ignored
这是我的代码:
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()
}
}
这是结果:
根据空格的数量,它应该创建一个空的换行符。然而,正如我们所见,情况并非如此。如果我在字符串的最后添加另一个字符,将显示换行符(但带有我不想要的字符)。
如果 UITextView
中需要,如何显示空换行符?
使用这个:
引用中有一些不可见的字符,iOS不算作whiteSpace
要添加额外的行,请使用“\n”,例如:
textView.text = "Some Random Text That Has Whitespaces At The End \n\n"
结果:
您可以强制任何 UITextView 的文本具有填充,即从其边缘缩进 - 通过将其 textContainerInset 属性 设置为您选择的值。例如,要从底部边缘给文本视图插入 50 点,您可以使用此代码:
Swift版本:5.0
textView.textContainerInset = UIEdgeInsets(top: 0, left: 0, bottom: 50, right: 0)
这是我的代码:
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()
}
}
这是结果:
根据空格的数量,它应该创建一个空的换行符。然而,正如我们所见,情况并非如此。如果我在字符串的最后添加另一个字符,将显示换行符(但带有我不想要的字符)。
如果 UITextView
中需要,如何显示空换行符?
使用这个:
引用中有一些不可见的字符,iOS不算作whiteSpace
要添加额外的行,请使用“\n”,例如:
textView.text = "Some Random Text That Has Whitespaces At The End \n\n"
结果:
您可以强制任何 UITextView 的文本具有填充,即从其边缘缩进 - 通过将其 textContainerInset 属性 设置为您选择的值。例如,要从底部边缘给文本视图插入 50 点,您可以使用此代码:
Swift版本:5.0
textView.textContainerInset = UIEdgeInsets(top: 0, left: 0, bottom: 50, right: 0)