//
// ViewController.swift
// textview
//
// Created by pengshengsong on 2021/8/27.
//
import UIKit
class ViewController: UIViewController, UITextViewDelegate {
private lazy var textView: UITextView = {
let textView = UITextView()
textView.text = "输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本输入或粘贴文本"
textView.backgroundColor = .red
textView.textContainerInset = UIEdgeInsets.init(top: 16, left: 16, bottom: 0, right: 16)
textView.contentInset = UIEdgeInsets.init(top: 0, left: 0, bottom: 16, right: 0)
textView.layoutManager.allowsNonContiguousLayout = false
textView.delegate = self
textView.contentInsetAdjustmentBehavior = .never
textView.keyboardDismissMode = .interactive
return textView
}()
private var contentOffsetY: CGFloat = 0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
view.addSubview(textView)
textView.frame = CGRect.init(x: 100, y: 100, width: 300, height: 200)
}
var isSelecting = false
public func scrollViewDidScroll(_ scrollView: UIScrollView) {
if isSelecting { return }
let deltaY = scrollView.contentOffset.y - contentOffsetY
contentOffsetY = scrollView.contentOffset.y
if deltaY <= 0 {
textView.resignFirstResponder()//endEditing(true)
}
}
func textViewDidChangeSelection(_ textView: UITextView) {
isSelecting = textView.selectedRange.length > 0
}
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
isSelecting = false
}
}
网友评论