GrowingTextViewHandler
一个 NSObject 子类,用于处理用户输入时 UITextView 的自动大小调整。TextView 在行数数量在指定的最小和最大行数之间时会调整大小。以下是从客户端代码中可以设置的公共属性。
- animationDuration: 默认 0.5
- maximumNumberOfLines: 默认 INT_MAX
- minimumNumberOfLines: 默认 1
#安装
在您的 pod 文件中添加以下行用于 Swift 4
pod 'GrowingTextViewHandler-Swift', '1.2'
对于旧版本,使用
pod 'GrowingTextViewHandler-Swift', '1.0.3'
#使用
首先创建一个 GrowingTextViewHandler 的实例。它需要一个 UITextView 和其高度限制作为参数。您可以指定最大和最小行数。然后在 "textViewDidChange" 方法中调用 resizeTextView 方法。
var handler:GrowingTextViewHandler?
@IBOutlet weak var aTextView: UITextView!
@IBOutlet weak var heightConstraint: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
self.handler? = GrowingTextViewHandler(textView: self.aTextView, heightConstraint: heightConstraint)
self.handler?.minimumNumberOfLines = 2
self.handler?.maximumNumberOfLines = 6
}
func textViewDidChange(textView: UITextView) {
self.handler?.resizeTextView(animated:true)
}
然而,当您以编程方式设置文本时,textViewDidChange(textView: UITextView) 不会调用。在这种情况下,您可以按如下方式调整 TextView 的大小
self.handler?.setText("Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", animated: true)