GrowingTextView
系统要求
iOS 8.0或更高版本
安装
CocoaPods
GrowingTextView可通过CocoaPods获得。要安装它,只需在Podfile中添加以下行:
Swift 5.0
pod 'GrowingTextView', '0.7.2'
Swift 4.2
pod 'GrowingTextView', '0.6.1'
Swift 4.1
pod 'GrowingTextView', '~> 0.5'
Swift 3
pod 'GrowingTextView', '~> 0.4'
Swift 2.3(自2016年9月起停止更新)
pod 'GrowingTextView', :git => 'https://github.com/KennethTsang/GrowingTextView.git', :branch => 'swift2'
Carthage
GrowingTextView也可以通过Carthage获得。要安装它,请将以下行添加到Cartfile中:
Swift 5.0
github "KennethTsang/GrowingTextView" ~> 0.7
Swift 4.2
github "KennethTsang/GrowingTextView" ~> 0.6
Swift 4.1
github "KennethTsang/GrowingTextView" ~> 0.5
Swift 3
github "KennethTsang/GrowingTextView" ~> 0.4
Swift 2.3(自2016年9月起停止更新)
github "KennethTsang/GrowingTextView" "swift2"
手动
将 GrowinngTextView.swift 复制到您的项目中。
用法
示例
GrowinngTextview只是一个文本视图,下载示例以了解如何像其他即时通讯应用一样将其用作输入工具栏。
以编程方式使用GrowingTextview
let textView = GrowingTextView()
textView.delegate = self
addSubview(textView)
在Storyboard中使用GrowingTextview
- 将TextView拖入Storyboard。
- 将类设置为"GrowingTextView"。
- 将其委托设置为视图控制器。
有时视图控制器可能会错误地自动调整文本视图的内边距。为了避免这种情况,将automaticallyAdjustsScrollViewInsets
设置为false
override func viewDidLoad() {
super.viewDidLoad()
automaticallyAdjustsScrollViewInsets = false
}
自定义
参数 | 类型 | 描述 | 默认 |
---|---|---|---|
maxLength | Int | 最大文本长度。超出文本将被截断。0表示没有限制。 | 0 |
trimWhiteSpaceWhenEndEditing | Bool | 当文本视图结束编辑时,去除空白和换行符。 | true |
placeholder | String? | 占位符文本。 | nil |
placeholderColor | UIColor | 占位符文本颜色。 | UIColor(white: 0.8, alpha: 1.0) |
attributedPlaceholder | NSAttributedString? | 属性占位符文本。 | nil |
minHeight | CGFloat | 文本视图的最小高度。 | 0.0 |
maxHeight | CGFloat | 文本视图的最大高度。 | 0.0 |
示例
textView.maxLength = 140
textView.trimWhiteSpaceWhenEndEditing = false
textView.placeholder = "Say something..."
textView.placeholderColor = UIColor(white: 0.8, alpha: 1.0)
textView.minHeight = 25.0
textView.maxHeight = 70.0
textView.backgroundColor = UIColor.whiteColor()
textView.layer.cornerRadius = 4.0
动画
- 使用
GrowingTextViewDelegate
代替 UITextViewDelegate。 - 实现 textViewDidChangeHeight 方法。
- 在动画中在父视图中调用 layoutIfNeeded()。
class ViewController: UIViewController, GrowingTextViewDelegate {
func textViewDidChangeHeight(_ textView: GrowingTextView, height: CGFloat) {
UIView.animate(withDuration: 0.2) {
self.view.layoutIfNeeded()
}
}
}
委托
GrowingTextViewDelegate
继承自 UITextViewDelegate。你可以像使用普通 UITextView 一样使用它的委托方法。
class ViewController: UIViewController, GrowingTextViewDelegate {
func textViewDidChange(_ textView: UITextView) {
...
}
func textViewDidEndEditing(_ textView: UITextView) {
...
}
}
有关 UITextViewDelegate,请参阅:https://developer.apple.com/reference/uikit/uitextviewdelegate
作者
Kenneth Tsang, [email protected]
许可证
GrowingTextView 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。