UITextView文本视图相比与UITextField直观的区别就是UITextView可以输入多行文字并且可以滚动显示浏览全文。常见UITextView使用在APP的软件简介、内容详情显示、小说阅读显示、发表空间内容输入、说说文本框、评论文本框等。

UITextView的使用有它本身的代理方法,也有继承于父类的方法。本身的方法有从开始编辑到结束编辑的整个过程的监听,继承的方法主要是继承于UIScrollView的方法,因为关于滚动的控制都属于UIScrollView的。

常用属性设置:

UITextView *textView = [[UITextView alloc]initWithFrame:CGRectMake(20, 10, 280, 80)];

textView.backgroundColor = [UIColor grayColor]; //背景色

textView.scrollEnabled = YES;    //当文字超出视图的边框时是否允许滑动,默认YES

textView.editable = YES;    //是否允许编辑内容,默认YES

textView.delegate = self;

textView.font = [UIFont fontWithName:@"Arial" size:18.0];   //设置字体

textView.returnKeyType = UIReturnKeyNext;   //return键的类型

textView.keyboardType = UIKeyboardAppearanceAlert;  //键盘的类型

textView.textAlignment = NSTextAlignmentLeft;   //文本显示内容默认居左

textView.dataDetectorTypes = UIDataDetectorTypePhoneNumber; //显示数据类型的链接模式(如电话号码,网址,地址等)

textView.textColor = [UIColor blackColor];

textView.text = @"IP / IQ / IC 卡,通通告诉我密码";

[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;

有时候我们要控件自适应输入的文本的内容的高度,只要在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);

}

控制输入文字的长度和内容,可通调用以下代理方法实现

- (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;

}

}

转载于:https://www.cnblogs.com/LE-Quan/p/5115750.html

UITextView(文本视图) 学习之初体验相关推荐

  1. 有道智能学习灯 初体验

    有道词典笔在业内树立了一个标杆,自认为有道出品必须精品! 但是今天刚初步体验了一下有道智能学习灯,硬件方面说实话有点意外,猜测这应该不是有道词典 笔团队打造的硬件产品吧. 现在将个人体验感受表格化陈述 ...

  2. RNN:深度学习噪声抑制(初体验)

    参考资料 1.RNNoise: Learning Noise Suppression(深度学习噪声抑制) 2.rnnoise 训练步骤 1.项目地址:https://github.com/xiph/r ...

  3. Talent Plan 学习营初体验:交流+坚持 开源协作课程学习的不二路径

    Talent Plan 是 PingCAP 联合华东师范大学.华中科技大学.中国科学技术大学.武汉大学和神州数码面向高校和工程师的未来数据库内核人才培养计划.通过结业考核的学员将获得官方认证的证书,并 ...

  4. AE学习:初体验AE

    体验AE 半夜爬起来学AE 定位日期 半夜爬起来学AE 大晚上睡不着,在三点的时候爬了起来体验AE.在b站找到相关的教学视频,跟着做了一个行星.选择一张图像,然后生成一个球形物体,然后图像全附着在球形 ...

  5. 生命在于学习——MSF初体验(一)

    注意:本篇文章仅用于学习笔记记录与交流,不得用于其他违规用途. 一.什么是MSF框架 Metasploit就是一个漏洞利用框架,全称是The Metasploit Framework,简称MSF(美少 ...

  6. day21—AngularJS学习初体验

    转行学开发,代码100天--2018-04-06 今天按照学习计划安排,开始AngularJS的学习. 关于AngularJS,在菜鸟教程上这样介绍 好吧,Angular学习起来非常简单,哈哈,现在就 ...

  7. C#代码生成工具:文本模板初体验 使用T4批量修改实体框架(Entity Framework)的类名...

    转自:http://www.cnblogs.com/huangcong/archive/2011/07/20/1931107.html 在之前的文本模板(T4)初体验中我们已经知道了T4的用处,下面就 ...

  8. yii schema.mysql.sql_YII学习,初体验 ,对YII的一些理解.

    先说点没用的: 不会选择,选择后不坚持,不断的选择.这是人生中的一个死循环,前两一直迷茫.觉得自己前进方向很不明朗.想去学的东西有很多.想学好YII,想学PYTHON 想学学hadoop什么的,又想研 ...

  9. 我的Go+语言初体验——(4)零基础学习 Go+ 爬虫

    我的Go+语言初体验--(4)零基础学习 Go+ 爬虫 "我的Go+语言初体验" | 征文活动进行中- Go+ 语言非常适合编写爬虫程序,具有并发机制完善.并发数量大.占用资源少. ...

  10. python的scrapy爬虫模块间进行传参_小猪的Python学习之旅 —— 4.Scrapy爬虫框架初体验...

    小猪的Python学习之旅 -- 4.Scrapy爬虫框架初体验 Python 引言: 经过前面两节的学习,我们学会了使用urllib去模拟请求,使用 Beautiful Soup和正则表达式来处理网 ...

最新文章

  1. 如何准备数学建模竞赛!
  2. jmeter --- 基于InfluxDBGrafana的JMeter实时性能测试数据的监控和展示
  3. Vmware下CentOs7 桥接模式下配置固定IP
  4. LeetCode 919. 完全二叉树插入器(层序遍历队列)
  5. Python与机器视觉(x) 颜色直方图
  6. 速芯科技完成1亿元人民币融资
  7. ruby分割字符串_Ruby中常用的字符串处理函数使用实例
  8. 【hbase】解决海量图片存储
  9. excel去重函数的使用方法_excel技巧分享:不同源文件的excel去重技法汇总
  10. KK凯文.凯利:第一届中国社群领袖峰会演讲实录(全部版)
  11. 谷歌2018年IO大会
  12. 图片内存太大?微信这个隐藏功能轻松压缩PNG、JPG图片!
  13. 【Java基础】语法基础
  14. 区块链系统开发介绍模块
  15. 北京 社保 减员 操作
  16. win7下搭建小程序服务器,重磅!微信PC端支持小程序直接开启 适配Win7及以上系统...
  17. 一枝看上去很美的花——书评《Java与模式》
  18. 关于网站在不同的网络访问不了的原因
  19. J storm战队成员_DOTA2J.Storm战队介绍-DOTA2PIT深渊联赛预选赛J.Storm战队介绍_牛游戏网攻略...
  20. 互怼、IPO、雷潮、寒冬,2018 互联网圈的那些事儿

热门文章

  1. android手机安全:被攻陷的一个场景
  2. LINUX开源监控平台Nagios(服务监控配置)
  3. 8.MongoDB之分片集群
  4. 拉取远程分支到本地分支_想买的保险本地没有分支机构怎么办?异地投保理赔难吗?...
  5. select2 清除已选项
  6. java怎么建立socket_Java Socket编程如何建立两者关系
  7. python编程框架_python编程基础框架
  8. 【渝粤教育】国家开放大学2019年春季 8680电工电子技术 参考试题
  9. 【渝粤教育】国家开放大学2018年秋季 0365-21T电子商务概论 参考试题
  10. [渝粤教育] 中国地质大学 事故应急救援 复习题 (2)