iOS_UITextView的整理

来源:互联网 发布:淘宝代销怎么填写品牌 编辑:程序博客网 时间:2024/05/16 18:14

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


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


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





0 0