GrowingTextView 0.7.2

GrowingTextView 0.7.2

测试已测试
语言 SwiftSwift
许可证 MIT
发布最后发布2019年12月
SPM支持SPM

Kenneth Tsang维护。




  • 作者:
  • Kenneth Tsang

GrowingTextView

Version License Platform Language Language Language Language

系统要求

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

  1. 将TextView拖入Storyboard。
  2. 将类设置为"GrowingTextView"。
  3. 将其委托设置为视图控制器。
automaticallyAdjustsScrollViewInsets

有时视图控制器可能会错误地自动调整文本视图的内边距。为了避免这种情况,将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

动画

  1. 使用 GrowingTextViewDelegate 代替 UITextViewDelegate。
  2. 实现 textViewDidChangeHeight 方法。
  3. 在动画中在父视图中调用 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 文件。