UITextView的基本用法

来源:互联网 发布:腾讯软件代理加盟 编辑:程序博客网 时间:2024/05/27 21:11

这里我们来了解UITextView的基本属性和代理方法

/*
     继承 UIScrollView
     
     和 UITextfield 属性基本相同
 */

首先声明属性

@property (nonatomic, strong) UITextView *textView;

// 初始化
    self.textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 50, CGRectGetWidth([UIScreen mainScreen].bounds) - 20, 36)];
    // 文字
    self.textView.text = @"请输入内容";
    // 设置文字的颜色 字体
    self.textView.textColor = [UIColor blackColor];
    self.textView.font = [UIFont systemFontOfSize:20];
    // 设置圆角
    self.textView.layer.masksToBounds = YES;
    self.textView.layer.cornerRadius = 5;
    // 设置是否可以滑动
    self.textView.scrollEnabled = YES; // 默认 YES
    // 背景颜色为灰色
    self.textView.backgroundColor = [UIColor grayColor];
    [self.view addSubview:self.textView];
    // 指定代理
    self.textView.delegate = self;


下面我们来看一下UITextView的代理方法:记得一定要引入协议 <UITextViewDelegate>

// 开始编辑

- (void)textViewDidBeginEditing:(UITextView *)textView;

 结束编辑

- (void)textViewDidEndEditing:(UITextView *)textView;

 编辑发生改变

- (void)textViewDidChange:(UITextView *)textView;

 焦点发生改变
- (void)textViewDidChangeSelection:(UITextView *)textView;


我们都知道UITextField有个属性就是placeholder 就是开始输入的时候的提示文字 但是UItextView没有 下面的方法就是来实现这个功能

// 开始编辑的时候
- (void)textViewDidBeginEditing:(UITextView *)textView {

   判断 把self.textView的text置为 nil

    if ([self.textView.text isEqualToString:@"请输入内容"]) {
        
        self.textView.text = nil;
    }
    NSLog(@"开始编辑");
}
// 结束编辑
- (void)textViewDidEndEditing:(UITextView *)textView {

  结束编辑的时候判断重新的附上值

    if (self.textView.text.length < 1) {
        self.textView.text = @"请输入内容";
    }
    NSLog(@"结束编辑");
}

// 这个方法实现了键盘的回收(但是前提是你不需要换行)你也可以加一个按钮来实现这一功能
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
    
    if ([text isEqualToString:@"\n"]) {
        
        [textView resignFirstResponder];
        return NO;
    }
    return YES;
    
}

// textView的自适应高度

- (void)textViewDidChange:(UITextView *)textView{
    // 计算文本的高度
    CGSize constraintSize = CGSizeMake(textView.frame.size.width, 0);
    
    NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:20]};
    
    CGRect rect = [textView.text boundingRectWithSize:constraintSize options:NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil];
//    // 重新调整textView的高度
    
    textView.frame = CGRectMake(textView.frame.origin.x,textView.frame.origin.y,textView.frame.size.width,rect.size.height + 12);
    
}

1 0
原创粉丝点击