1.先cell自适应

可以先拿到 这个lable里文字的高度

//lable自适应的高度
-(CGFloat)heightWithString:(NSString *)aString
{ CGRect r = [aString boundingRectWithSize:CGSizeMake(self.tableView.frame.size.width - 28, 20000) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:FourT3GongNengZiHaoFont} context:nil]; return r.size.height;
}

在cell的高度返回方法里面调用方法

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return [ActiviteDetail2TwoCell cellHeight:[self heightWithString:_activityInfoNewModel.activityDes]]; }

在cell里填写此cell需要的高度

+(CGFloat)cellHeight:(CGFloat)height
{ return 72+height;
}

此时cell可以根据文字的高度 而适应高度了

那么cell里的lable的高度怎么设置??

正常在初始化里写正常的高度就可以

    self.detailLable.frame = CGRectMake(14, CGRectGetMaxY(self.titleLable.frame)+28+1, CurrentScreenWidth-28, 23);

在cell里写一个改变这个detail的方法

//赋值 and 自动换行,计算出cell的高度
-(void)setDetailLableText:(NSString *)text
{
//获得当前cell高度
CGRect frame = [self frame];
//文本赋值
self.detailLable.text = text;
//设置label的最大行数
self.detailLable.numberOfLines = 10;
CGSize size = CGSizeMake(CurrentScreenWidth-14-30-14, 1000);
CGSize labelSize = [self.detailLable.text sizeWithFont:self.detailLable.font constrainedToSize:size lineBreakMode:NSLineBreakByClipping];
self.detailLable.frame = CGRectMake(self.detailLable.frame.origin.x, self.detailLable.frame.origin.y, labelSize.width, labelSize.height); //计算出自适应的高度
frame.size.height = labelSize.height; self.frame = frame;
}

出来再cell的赋值里面调用这个方法

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{ ActiviteDetail2TwoCell *cellTwo = [tableView dequeueReusableCellWithIdentifier:@"ActiviteDetail2TwoCell" forIndexPath:indexPath];
cellTwo.selectionStyle = UITableViewCellSelectionStyleNone; [cellTwo setDetailLableText:_activityInfoNewModel.activityDes]; }

lable的行间距设置

 if (cellTwo.detailLable.text!=nil) { //这里要判断一下 改label不为空的时候  不判空 会蹦掉
NSMutableAttributedString * attributedString1 = [[NSMutableAttributedString alloc] initWithString:cellTwo.detailLable.text];
NSMutableParagraphStyle * paragraphStyle1 = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle1 setLineSpacing:3];
[attributedString1 addAttribute:NSParagraphStyleAttributeName value:paragraphStyle1 range:NSMakeRange(0, [cellTwo.detailLable.text length])];
[cellTwo.detailLable setAttributedText:attributedString1];
[cellTwo.detailLable sizeToFit];
}

lable 根据宽度适应字体

titleLabel.adjustsFontSizeToFitWidth = YES;

lable 以及cell的高度自适应的更多相关文章

  1. [Swift通天遁地]二、表格表单-(3)在表格中嵌套另一个表格并使Cell的高度自适应

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  2. iOS开发之多种Cell高度自适应实现方案的UI流畅度分析

    本篇博客的主题是关于UI操作流畅度优化的一篇博客,我们以TableView中填充多个根据内容自适应高度的Cell来作为本篇博客的使用场景.当然Cell高度的自适应网上的解决方案是铺天盖地呢,今天我们的 ...

  3. 转:iOS开发之多种Cell高度自适应实现方案的UI流畅度分析

    本篇博客的主题是关于UI操作流畅度优化的一篇博客,我们以TableView中填充多个根据内容自适应高度的Cell来作为本篇博客的使用场景.当然Cell高度的自适应网上的解决方案是铺天盖地呢,今天我们的 ...

  4. iOS 开发中单元格cell高度自适应

    高度自适应分下面两种情况 1.用代码自定义的cell 用代码自定义的cell,cell高度自定义需要我们手动的去计算每个cell的字符串高度.然后返回对应的高度即可. 2.用XIB 或者 StoreB ...

  5. 关于TableViewCell高度自适应问题的整理

    TableViewCell高度自适应在网上有很多资料,我只想找出最最最简单的一种方法. 首先梳理一下思路.说到TableViewCell我们第一个想到的问题或许就是cell的复用问题. 1.  [se ...

  6. uitableviewcell高度自适应笔记

    今天看了几篇uitableviewcell高度自适应的文章,大体分为两种方式. 第一种方式,cell里面有label,在cellforrow绘制的时候计算Label的可能高度,并且在此时重新计算cel ...

  7. UITableViewCell高度自适应探索--AutoLayout结合Frame

    UITableViewCell高度自适应探索--UITableView+FDTemplateLayoutCell地址: http://www.jianshu.com/p/7839e3a273a6UIT ...

  8. UITableViewCell 高度自适应

    UITableViewCell 高度自适应一直是我们做动态Cell高度时遇到的最烦躁的问题,Cell动态高度计算可以去看看sunny的这篇文章介绍,今天主要和大家分享下我在使用systemLayout ...

  9. autolayout 高度自适应

    https://lvwenhan.com/ios/449.html #import "ViewController.h" #import "MyTableViewCell ...

随机推荐

  1. kvm 动态挂载硬盘

    根据最新需求需要动态的给kvm下的windows虚拟机挂载硬盘,网上查看了很多资料终于试通了,在这里记录下方便自己回忆,同事可以给大家做做参考,如果有问题欢迎吐槽 环境:先说说我使用的环境,环境是使用 ...

  2. 安卓 listview与arrayadapter

    今天有感于群里讨论的一个问题,很简单,但是问题还真是需要仔细看一下 问题:定义了一个最简单的arrayadapter,和listview结合使用,灭个item就显示个最简单的textView,一共6个 ...

  3. 微信小程序之----问题

    1.如何定义全局数据 在app.js的App({})中定义的数据或函数都是全局的,在页面中可以通过var app = getApp();  app.function/key的方式调用,不过我们没有必要 ...

  4. Oracle数据库中的函数

    1.随机数函数:DBMS_RANDOM.RANDOM )) FROM DUAL; --产生一个100以内的随机数 *dbms_random.value) FROM dual; --产生一个100-10 ...

  5. 如何备份、还原或迁移 WhatsApp 的信息和资料?

    WhatsApp 会在每天清晨 2 点钟自动创建本地备份文件并将备份文件存储在手机系统设置的文件夹中. Google 云端硬盘 您可以备份对话记录和媒体到 Google 云端硬盘以便日后更换手机时仍可 ...

  6. linux Cron 执行Django 任务计划

    用shell 脚本调用python 脚本如下 #!/bin/bash export FLAVOR=liveexport PYTHONPATH=$PYTHONPATH:/home/alex/Django ...

  7. 动态创建Fastreport(delphi)

    动态创建Fastreport分以下几个步骤: 1.首先清空Fastreport,定义全局变量,并加载数据集    frReport.Clear;    frReport.DataSets.Add(fr ...

  8. MySQL动态添删改列字段

    动态增加列字段: ); 动态删除列字段: alter table TableName drop column field_id; 动态修改列字段: alter table TableName chan ...

  9. 《R包的分类介绍》

    R分析空间数据(Spatial Data) R机器学习包(Machine Learning) R多元统计包(Multivariate Statistics) R药物(代谢)动力学数据分析包 R计算计量 ...

  10. PHP的一些 有用但不常用的函数记录

    1. microtime() 当前 Unix 时间戳以及微秒数. <?php $mem = new Memcache; $mem->connect("127.0.0.1" ...