美文网首页iOS收藏iOS
iOS UITextView根据内容自适应高度

iOS UITextView根据内容自适应高度

作者: 无奈iOSer | 来源:发表于2017-03-10 15:53 被阅读730次

    UITextView作为内容文本输入区域,有的时候我们需要根据内容动态改变文本区域的高度,效果如下:

    定义UITextView,实现UITextViewDelegate:
    
    -(UITextView *)textView{
    
    if (!_textView) {
    
    _textView=[[UITextView alloc]initWithFrame:CGRectMake(30, 200, CGRectGetWidth([[UIScreen mainScreen] bounds])-60, 30)];
    
    [_textView setTextColor:[UIColor redColor]];
    
    [_textView.layer setBorderColor:[[UIColor blackColor] CGColor]];
    
    [_textView setFont:[UIFont systemFontOfSize:15]];
    
    [_textView.layer setBorderWidth:1.0f];
    
    [_textView setDelegate:self];
    
    }
    
    return _textView;
    
    }
    
    实现textViewDidChange方法:
    
    -(void)textViewDidChange:(UITextView *)textView{
    
    static CGFloat maxHeight =60.0f;
    
    CGRect frame = textView.frame;
    
    CGSize constraintSize = CGSizeMake(frame.size.width, MAXFLOAT);
    
    CGSize size = [textView sizeThatFits:constraintSize];
    
    if (size.height<=frame.size.height) {
    
    size.height=frame.size.height;
    
    }else{
    
    if (size.height >= maxHeight)
    
    {
    
    size.height = maxHeight;
    
    textView.scrollEnabled = YES;  // 允许滚动
    
    }
    
    else
    
    {
    
    textView.scrollEnabled = NO;    // 不允许滚动
    
    }
    
    }
    
    textView.frame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, size.height);
    
    }
    

    相关文章

      网友评论

        本文标题:iOS UITextView根据内容自适应高度

        本文链接:https://www.haomeiwen.com/subject/xhfogttx.html