iOS_UITextView的整理

原创 2016年05月30日 21:00:59

最近工作灰常忙,没有时间学习总结新的资料,还是针对基础内容发篇文章,把之前的总结发上来一起分享~~


//初始化 
    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;
    }
}


感谢观看,学以致用更感谢~





版权声明:本文为博主原创文章,转载时请声明:http://blog.csdn.net/siwen1990 转载

iOS TextView 中的文字 点击一次全部展开, 在点击一次 显示原有大小。

- (void)tapButton:(UITapGestureRecognizer *)tap { static int count = 1; if (count == 1) { ...
  • c183279066
  • c183279066
  • 2014年10月18日 15:02
  • 2438

[ ios ] 折叠显示文本控件

使用第三方控件,可以方便的折叠显示大量文本。 使用方法
  • zyb050607
  • zyb050607
  • 2014年09月15日 09:41
  • 1532

如何写一个可以展开的TextView

原理是通过点击的时候设置 setMaxLines(lineNum)来实现: public class ExpandableTextView extends TextView { private...
  • baidu_nod
  • baidu_nod
  • 2014年08月25日 07:25
  • 1643

UITextView实现占位文字

UITextField *textField默认的情况 1.只能显示一行文字 2.有占位文字UITextView *textView默认的情况 2.能显示任意行文字 2.没有占位文字文...
  • u013094208
  • u013094208
  • 2016年08月08日 22:49
  • 508

IOS点击文字展开滚轮实现,类似下拉列表

1.首先确定点击文字的是什么,UITextview?UITextfield?UIButton?2.展开的是滚轮 这个不会错,采用UIpickerView3.UITextview和UITextfiel...
  • RichieZhu
  • RichieZhu
  • 2015年12月11日 14:52
  • 2465

iOS_UITextView的整理

最近工作灰常忙,没有时间学习总结新的资料,还是针对基础内容发篇文章,把之前的总结发上来一起分享~~...
  • siwen1990
  • siwen1990
  • 2016年05月30日 21:00
  • 515

UITextView的使用详解

此文转载自:http://blog.sina.com.cn/s/blog_9693f61a0101aode.html (PS:我没说谎哦!看,复制的背景都在呢) UITextView的...
  • zhouxiangstudying
  • zhouxiangstudying
  • 2015年04月15日 10:11
  • 1393

as 整理代码快捷键

马丹,挺好用的,就是记不住,好气Ctrl + alt + L
  • u011033906
  • u011033906
  • 2017年02月10日 22:20
  • 710

eclipse快捷键及代码整理

eclipse使用技巧 1、选中括号颜色:      Window->Preferences->Java->Editor->color 2、显示行号:      Window->Prefere...
  • superloveboy
  • superloveboy
  • 2015年02月25日 23:11
  • 2094

iOS之UITextView和UITextFiled的区别

IOS中的UITextView和UITextField都是文本输入控件并都能够调用系统键盘。 两者最大的区别是: 1、UITextView支持多行输入并且可以滚动显示浏览全文,而UITextFie...
  • LVXIANGAN
  • LVXIANGAN
  • 2015年04月05日 12:33
  • 5068
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS_UITextView的整理
举报原因:
原因补充:

(最多只允许输入30个字)