文档章节

UITableViewCell的自适应高度(还未实现)

W
 Who_Care_Who
发布于 2015/05/04 19:31
字数 510
阅读 12
收藏 0
1. 先说一下Lable的自适应高度

   要想Lable自适应高度,必须要设置一下Lable的几个属性
   
   numberOfLines  Lable内容的文字显示的行数,其中0代表最大
   
   Font 字体大小
   
   LineBreakMode d断行格式
   
   Lable的size设置一个行高和上限,一般高要大于frame的实际高
   
   下面是代码
   
    //计算lable内容的高度
    CGRect Rect1 = [self.lable.text boundingRectWithSize:CGSizeMake(280, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13.0]} context:nil];
    
    //临时保存Lable的frame
    
    CGRect tem = self.lable.frame;
    
    tem.size.height = Rect1.size.height;
    
    Lable.frame = tem;

1.1 sizeToFit的含义

    这个此的意思是自适应大小,假如你的lable的frame的height太大但是内容太少,当内容不足以将整个Label占满的时
    
    候,可以将Label中的内容顶部对齐显示,并自适应大小
 
 2.Cell的高度
 
   计算cell的高度主要分为以下几种情况:
   
   . Auto Layout with UILabel in UITableViewCell
   
   . Auto Layout with UITextView in UITableViewCell
   
   . Manual Layout with UILabel in UITableViewCell

   . Manual Layout with UITextView in UITableViewCell

   <1>随UITextView高度动态改变Cell高度
   
    Auto Layout with UILable in UITableViewCell这种方法时,一定要注册cell
   
    UINib *cellNib = [UINib nibWithNibName:@"C1" bundle:nil]; 
   
   [self.tableView registerNib:[UINib nibWithName:@"" bundle:nil] forCellReuseIdentifier:@"C1"];
   
   这里有一个问题需要特别注意,UITableView是一次性计算所有的cell的高度,所以如果cell很多的话,那么计算cell的
   
   方法就会每次都触发。在iOS7之后有一个方法可以避免:它就是- (CGFloat)tableView:(UITableView )tableView e
   
   stimatedHeightForRowAtIndexPath:(NSIndexPath )indexPath。要求返回一个Cell的估计值,实现了这个方法,那
   
   只有显示的Cell才会触发计算高度的protocol.
  
   由于systemLayoutSizeFittingSize需要cell的一个实例才能计算,所以这儿用一个成员变量存一个Cell的实列,这样
   
   就不需要每次计算Cell高度的时候去动态生成一个Cell实例,这样即方便也高效也少用内存。




© 著作权归作者所有

W
粉丝 1
博文 69
码字总数 28284
作品 0
海淀
私信 提问
iOS开发tips-UITableView、UICollectionView行高/尺寸自适应

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jianxin160/article/details/55002487 UITableView 我们都知道UITableView从iOS 8开始实现行高的自适应相对比...

KenshinCui
2017/02/12
0
0
iOS UITableView代理方法详解

iOS UITableView的代理方法详解 一、补充 在上一篇博客中,http://my.oschina.net/u/2340880/blog/404605,我将IOS中tableView(表视图)的一些常用方法总结了一下,这篇将tableView的代理方法...

珲少
2015/04/22
0
2
iOS开发tips-神奇的UITableView

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jianxin160/article/details/71436920 概述 UITableView是iOS开发中使用频率最高的UI控件,在前面的文章中对于...

KenshinCui
2017/05/08
0
0
UITableView 基本使用方法总结

首先,Controller需要实现两个 delegate ,分别是 UITableViewDelegate 和 UITableViewDataSource 2.然后 UITableView对象的 delegate要设置为 self。 3. 然后就可以实现这些delegate的一些方...

悠哉悠哉e
2012/11/13
0
0
IOS TableView的Cell高度自适应,UILabel自动换行适应

项目的源码下载地址:http://download.csdn.net/detail/swingpyzf/6835365 需求: 1、表格里的UILable要求自动换行 2、创建的tableViewCell的高度会自动适应内容的高度 一、用xcode构建项目,...

嘻哈开发者
2014/10/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Angular 英雄编辑器

应用程序现在有了基本的标题。 接下来你要创建一个新的组件来显示英雄信息并且把这个组件放到应用程序的外壳里去。 创建英雄组件 使用 Angular CLI 创建一个名为 heroes 的新组件。 ng gener...

honeymoose
26分钟前
3
0
Kernel DMA

为什么会有DMA(直接内存访问)?我们知道通常情况下,内存数据跟外设之间的通信是通过cpu来传递的。cpu运行io指令将数据从内存拷贝到外设的io端口,或者从外设的io端口拷贝到内存。由于外设...

yepanl
今天
6
0
hive

一、hive的定义: Hive是一个SQL解析引擎,将SQL语句转译成MR Job,然后再在Hadoop平台上运行,达到快速开发的目的 Hive中的表是纯逻辑表,就只是表的定义,即表的元数据。本质就是Hadoop的目...

霉男纸
今天
3
0
二、Spring Cloud—Eureka(Greenwich.SR1)

注:本系列文章所用工具及版本如下:开发工具(IDEA 2018.3.5),Spring Boot(2.1.3.RELEASE),Spring Cloud(Greenwich.SR1),Maven(3.6.0),JDK(1.8) Eureka: Eureka是Netflix开发...

倪伟伟
昨天
11
0
eclipse常用插件

amaterasUML https://takezoe.github.io/amateras-update-site/ https://github.com/takezoe/amateras-modeler modelGoon https://www.cnblogs.com/aademeng/articles/6890266.html......

大头鬼_yc
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部