版权声明:本文为博主原创文章,转载时请声明:http://blog.csdn.net/siwen1990 转载
最近工作灰常忙,没有时间学习总结新的资料,还是针对基础内容发篇文章,把之前的总结发上来一起分享~~
- //初始化
- UITextView *textview = [[UITextView alloc] initWithFrame:CGRectMake(20, 10, 280, 30)];
- textview.backgroundColor=[UIColor whiteColor];
- textview.scrollEnabled = NO; //当文字超过视图的边框时是否允许滑动,默认为“YES”
- textview.editable = YES; //是否允许编辑内容,默认为“YES”
- textview.delegate = self; //设置代理方法的类给予
- textview.font=[UIFont fontWithName:@"Arial" size:18.0]; //设置字体与大小;
- textview.returnKeyType = UIReturnKeyDefault;//return键的类型
- textview.keyboardType = UIKeyboardTypeDefault;//键盘类型
- textview.textAlignment = NSTextAlignmentLeft; //文字的显示
- textview.dataDetectorTypes = UIDataDetectorTypeAll; //显示数据类型的连接模式(如电话号码、网址、地址等)
- textview.textColor = [UIColor blackColor];//文字颜色
- textview.text = @"UITextView详解";//文本内容
- [self.view addSubview:textview];//添加
UITextView的代理:
- //将要开始编辑
- - (BOOL)textViewShouldBeginEditing:(UITextView *)textView;
- //将要结束编辑
- - (BOOL)textViewShouldEndEditing:(UITextView *)textView;
- //开始编辑
- - (void)textViewDidBeginEditing:(UITextView *)textView;
- //结束编辑
- - (void)textViewDidEndEditing:(UITextView *)textView;
- //内容将要发生改变编辑
- - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
- //内容发生改变编辑
- - (void)textViewDidChange:(UITextView *)textView;
- //焦点发生改变
- - (void)textViewDidChangeSelection:(UITextView *)textView;
下面是我们经常使用的一些小方法(参考资料-风之语2018的博客):
- //有时候我们要控件自适应输入的文本的内容的高度,只要在textViewDidChange的代理方法中加入调整控件大小的代理即可
- - (void)textViewDidChange:(UITextView *)textView{
- //计算文本的高度
- CGSize constraintSize;
- constraintSize.width = textView.frame.size.width-16;
- constraintSize.height = MAXFLOAT;
- CGSize sizeFrame =[textView.text sizeWithFont:textView.font
- constrainedToSize:constraintSize
- lineBreakMode:UILineBreakModeWordWrap];
- //重新调整textView的高度
- textView.frame = CGRectMake(textView.frame.origin.x,textView.frame.origin.y,textView.frame.size.width,sizeFrame.height+5);
- }
- //如果你的textview里不用回车键,可以把回车键当做退出键盘的响应键。
- 代码如下:
- -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
- {
- if ([text isEqualToString:@"\n"]) {
- [textView resignFirstResponder];
- return NO;
- }
- return YES;
- }
- //控制输入文字的长度和内容,可通调用以下代理方法实现
- - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
- {
- if (range.location>=100)
- {
- //控制输入文本的长度
- return NO;
- }
- if ([text isEqualToString:@"\n"]) {
- //禁止输入换行
- return NO;
- }
- else
- {
- return YES;
- }
- }
感谢观看,学以致用更感谢~