- (void)contentSizeToFit
{//先判断一下有没有文字(没文字就没必要设置居中了)if([self.textView.text length]>0){//textView的contentSize属性CGSize contentSize = self.textView.contentSize;//textView的内边距属性
        UIEdgeInsets offset;CGSize newSize = contentSize;//如果文字内容高度没有超过textView的高度if(contentSize.height <= self.textView.frame.size.height){//textView的高度减去文字高度除以2就是Y方向的偏移量,也就是textView的上内边距CGFloat offsetY = (self.textView.frame.size.height - contentSize.height)/2;offset = UIEdgeInsetsMake(offsetY, 0, 0, 0);}else          //如果文字高度超出textView的高度
        {newSize = self.textView.frame.size;offset = UIEdgeInsetsZero;CGFloat fontSize = 18;//通过一个while循环,设置textView的文字大小,使内容不超过整个textView的高度(这个根据需要可以自己设置)while (contentSize.height > self.textView.frame.size.height){[self.textView setFont:[UIFont fontWithName:@"Helvetica Neue" size:fontSize--]];contentSize = self.textView.contentSize;}newSize = contentSize;}//根据前面计算设置textView的ContentSize和Y方向偏移量
        [self.textView setContentSize:newSize];[self.textView setContentInset:offset];}
}

原理:由于textView是继承自UIScrollview,所以会有ContentSize属性。所以可以通过文字内容的高度(也就是ContentSize)的高度和textView的高度之间的差值,设置内边距,就相当于把内容居中了。

转载于:https://www.cnblogs.com/sheer-code/p/10719481.html

笔记:UITextView内容垂直居中方法相关推荐

  1. 小技巧--table表格td内容垂直居中方法

    小技巧–table表格td内容垂直居中方法 前端页面编写时,table表格排版时最容易遇到的,就是单元格内的内容无法居中,又不能写行高时,可以使用以下方法: table td {vertical-al ...

  2. 前端中全部盒子靠左对齐_图文详解ul中li内容垂直居中和水平居中的方法

    在页面布局时,经常会用到li标签,它可用于列表,导航,选项卡等等,那你知道如何让ul中的li居中吗?这篇文章就和大家讲讲如何让ul中的li水平居中以及如何让li内容垂直居中.感兴趣的朋友继续往下看吧. ...

  3. CSS3与页面布局学习笔记(三)——BFC、定位、浮动、7种垂直居中方法

    一.BFC与IFC 1.1.BFC与IFC概要 BFC(Block Formatting Context)即"块级格式化上下文", IFC(Inline Formatting Co ...

  4. CSS总结div中的内容垂直居中的四种方法

    一.行高(line-height)法 如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如: p { height:30px; line-height:3 ...

  5. HTML总结div中的内容垂直居中的五种方法

    一.行高(line-height)法 如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如: p { height:30px; line-height:3 ...

  6. 学习使用CSS实现div中的内容垂直居中的方法

    学习使用CSS实现div中的内容垂直居中的方法 一.行高(line-height)法 二.内边距(padding)法 三.模拟表格法 四.CSS3的transform来实现 五:css3的box方法实 ...

  7. php垂直居中代码_div中五种方法实现内容垂直居中

    一.行高(line-height)法 如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如: p { height:30px; line-height:3 ...

  8. CSS总结div中的内容垂直居中的五种方法

    一.行高(line-height)法 如果要垂直居中的只有一行或几个文字,那它的制作最为简单,只要让文字的行高和容器的高度相同即可,比如: p { height:30px; line-height:3 ...

  9. 《Go语言圣经》学习笔记 第六章 方法

    <Go语言圣经>学习笔记 第六章 方法 目录 方法声明 基于指针对象的方法 通过嵌入结构体来扩展类型 方法值和方法表达式 示例:Bit数组 封装 注:学习<Go语言圣经>笔记, ...

最新文章

  1. python编程入门单例_常见的在Python中实现单例模式的三种方法
  2. java 回调模式_总结!!!总结!!!java回调以及future模式
  3. abap submit 的使用方法 不同情况
  4. linux(CentOS)下安装mongodb
  5. Scrapy学习-24-集成elasticsearch
  6. python 输出一个 5*5的 三角形_GitHub标星3W+,80个Python案例,带你轻松玩转Python学习!...
  7. android 圆角按钮渐变,Android实现圆形渐变加载进度条
  8. 工作222:title写活
  9. oracle中查询某张表的大小
  10. Linux系统性能查询命令
  11. 在线生成抽象话的网页源码
  12. 第一步:python下PyGame的下载与安装
  13. HDU 6096 树套树
  14. 【Docker系列】 Docker secrets
  15. html图片加水印元素,使用HTML5 Canvas给图片加水印效果
  16. 安装proteus8和卸载
  17. 列表,元组,集合总结
  18. 湖北省十堰市谷歌高清卫星地图下载
  19. 从泊松方程到泊松融合(Poisson Matting)
  20. 【VBA研究】用VBA取得EXCEL有效行列数方法比较

热门文章

  1. LeetCode 516 最长回文子串
  2. java 内部类_Java内部类总结有哪些 没有基础该怎么学Java?
  3. dadayi大一c语言累加编程题,c++习题答案中国电力出版社
  4. Windows下启动Apache报错:ServerRoot must be a valid directory
  5. 【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(3)签到题3题
  6. 【Codeforces 1344 A】Hilbert‘s Hotel,哈希表,set维护
  7. 【基础】二分算法学习笔记
  8. java上拉变量_「小程序JAVA实战」小程序页面的上拉下拉刷新(50)
  9. 多个值合并成一个字段oracle排序,Oracle之多行记录变一行记录,行变列,并排序(wmsys.wm_concat)...
  10. JavaScript浏览器对象模型概述(1)