开发者社区> 文艺小青年> 正文

iOS开发-UITextView根据内容自适应高度

简介:
+关注继续查看

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

定义UITextView,实现UITextViewDelegate:

1
2
3
4
5
6
7
8
9
10
11
12
-(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方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
-(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);
}
本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/5148380.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android开发15——给TextView加上滚动条
给TextView加上滚动条非常简单,只需要把TextView标签放在ScrollView标签中 &lt;ScrollView android:layout_width="wrap_content" android:layout_height="wrap_content"&gt; &lt;TextView android:layout_width="
951 0
软件开发中的数据库测试内容与方法
随着网络信息技术的发展, 计算机软件受到广泛关注与重视, 已经形成了良好的开发模式, 可以通过开发研究的方式, 全面提升计算机软件的使用效果, 充分发挥其在计算机中的应用优势。在计算机软件开发期间, 需要使用数据库测试技术, 及时发现其中存在的问题, 采用合理的措施解决问题, 以此提升软件的运行水平。
156 0
麻省理工学院开发系统 使用肌肉信号控制无人机
麻省理工学院的研究人员创造了一个新的系统,能让我们更接近于人与机器人的无缝协作。这套系统被称为 "行为-A-Bot"。它利用可穿戴式传感器发出的人体肌肉信号来驾驶无人机,控制无人机的运动。
439 0
uitableview中自适应的复杂cell构建思路(此方案兼容ios8以下,若仅支持ios8,有更先进的方案,请期待续篇)
对于普通的cell来说我们一般可以直接根据cell的类型给予一个固定的高度,这种情况下我们控件的布局和展示内容所需要的空间大小对我们来说是预知的,因此可以直接这样实现;而对于某些更高级的需求场景来说(比如cell里展示的是聊天信息之类),我们想要把cell中的信息全部展示,就不能够在heightForRowAtIndexPath的代理方法中返回固定值了。
719 0
安卓开发----TextView控件属性列表(转)
文章原地址: http://wwzcraig.blog.163.com/blog/static/64622969201373184343118/   android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。
736 0
【iOS开发】带有 Extension Target 的 App,如何签名打包
�Extension Target 如果我们要开发一款类似 AdBlock 的应用,就需要添加一个 Extension Target,如上图。
1323 0
3576
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载