如何解决UITextView 在调整大小时删除临时空行
我有一个 UITextView
可能会改变大小。滚动被禁用。这是发生了什么:
有什么办法可以防止这种奇怪的行为,而且还能将 lineBreakMode 保持为 .byTruncatingTail
? (删除此选项会产生预期的调整大小结果)
操场代码,以便您可以轻松重现:
import UIKit
import PlaygroundSupport
class HostController: UIViewController {
let textView = UITextView()
override func viewDidLoad() {
view.backgroundColor = .gray
textView.frame = CGRect(x: 10,y: 10,width: 150,height: 200)
textView.isEditable = false
textView.isScrollEnabled = false
textView.textContainer.lineBreakMode = .byTruncatingTail
textView.text = "Line 1\n\n\n\nLine 2\n\nLine 3\n\nLine 4\nSome text that goes beyond the width"
view.addSubview(textView)
let slider = UiSlider(frame: CGRect(x: 160,width: 100,height: 30))
slider.minimumValue = 10
slider.maximumValue = 200
slider.value = 200
slider.addTarget(self,action: #selector(sliderChanged(sender:)),for: .valueChanged)
view.addSubview(slider)
}
@objc func sliderChanged(sender: UiSlider) {
textView.frame.size.height = CGFloat(sender.value)
}
}
let vc = HostController()
PlaygroundPage.current.liveView = vc
解决方法
事实证明,如果您在新行之间添加一个空格字符,问题就会消失。对于上面的示例,这将是:
textView.text = "Line 1\n \n \n \nLine 2\n \nLine 3\n \nLine 4\nSome text that goes beyond the width"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。