一个 NSObject 子类,用于在用户输入内容时处理 UITextView 的调整大小。当行的数量在指定的最小和最大行数之间时,TextView 会调整大小。这是客户端代码可以设置的公共属性。
在您的 pod 文件中添加以下行
pod 'GrowingTextViewHandler', '~> 1.0.3'
首先创建一个 GrowingTextViewHandler 的实例。它接受一个 UITextView 和其高度约束作为参数。您可以指定最大和最小行数。然后在 "textViewDidChange" 方法中调用 resizeTextView 方法
@interface ViewController ()<UITextViewDelegate>
@property (weak, nonatomic) IBOutlet UITextView *textView;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *heightConstraint;
@property (strong, nonatomic) GrowingTextViewHandler *handler;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.handler = [[GrowingTextViewHandler alloc]initWithTextView:self.textView withHeightConstraint:self.heightConstraint];
[self.handler updateMinimumNumberOfLines:3 andMaximumNumberOfLine:8];
}
- (void)textViewDidChange:(UITextView *)textView {
[self.handler resizeTextViewWithAnimation:YES];
}
@end
但是当您以编程方式设置文本时,- (void)textViewDidChange:(UITextView *)textView 并不会调用。对于此情况,您可以如下调整 UITextView 的大小
[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."
withAnimation:YES];