zoukankan      html  css  js  c++  java
  • iOS开发-UITextView根据内容自适应高度

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

    定义UITextView,实现UITextViewDelegate:

    -(UITextView *)textView{
        if (!_textView) {
            //http://www.cnblogs.com/xiaofeixiang/
            _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{
        //博客园-FlyElephant
        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);
    }
  • 相关阅读:
    【强烈推荐】 超漂亮的仿腾讯弹出层效果(兼容主流浏览器<转>;
    必须掌握的八个【cmd 命令行】
    grep命令的用法
    sed 命令的用法1
    Paste命令的用法
    uniq命令的用法
    join命令的用法
    Sort命令的用法
    cut命令的用法
    tr命令学习
  • 原文地址:https://www.cnblogs.com/xiaofeixiang/p/5148380.html
Copyright © 2011-2022 走看看