博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS7上 使用autolayout让Cell自动调整高度
阅读量:5174 次
发布时间:2019-06-13

本文共 1274 字,大约阅读时间需要 4 分钟。

如果是iOS8, 那么在storyboard中对cell添加好约束之后只需要再添加两句代码就能让cell自动调整高度

1     self.tableView.estimatedRowHeight = 非0;2     self.tableView.rowHeight = UITableViewAutomaticDimension;

但是现在大多数应用都还是需要支持iOS7的, 所以在以上基础上, 再在tableView的代理方法中添加以下即可解决, 在这之前别忘了添加一个属性

@property (strong, nonatomic) sdTableViewCell *ccll;

并初始化

- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view, typically from a nib.    _ccll = [self.tableView dequeueReusableCellWithIdentifier:@"cc"];
  self.tableView.estimatedRowHeight = 非0;  self.tableView.rowHeight = UITableViewAutomaticDimension;
}

代理方法中:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {        sdTableViewCell *cell = (sdTableViewCell *)_ccll;    cell.label.text = arr[indexPath.row];        [cell setNeedsUpdateConstraints];    [cell updateConstraintsIfNeeded];    cell.bounds = CGRectMake(0.0f, 0.0f, CGRectGetWidth(tableView.bounds), CGRectGetHeight(cell.bounds));    [cell setNeedsLayout];    [cell layoutIfNeeded];        CGFloat height = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;    NSLog(@"hei%f", height);//加上分割线的1,不然会差一点    return height + 1;}

运行, 就能根据内容自动调整高度了

 

转载于:https://www.cnblogs.com/mcluyu/p/4745625.html

你可能感兴趣的文章
微信公众平台开发实战Java版之如何网页授权获取用户基本信息
查看>>
一周TDD小结
查看>>
sizeof与strlen的用法
查看>>
Linux 下常见目录及其功能
查看>>
开源框架中常用的php函数
查看>>
nginx 的提升多个小文件访问的性能模块
查看>>
set&map
查看>>
集合类总结
查看>>
4.AE中的缩放,书签
查看>>
1.开发准备
查看>>
centos su命令
查看>>
CLR:基元类型、引用类型和值类型
查看>>
dubbo序列化hibernate.LazyInitializationException could not initialize proxy - no Session懒加载异常的解决...
查看>>
jQuery中的事件绑定的几种方式
查看>>
泥塑课
查看>>
setImageBitmap和setImageResource
查看>>
springMVC4 注解配置实例
查看>>
单片机编程
查看>>
Filter in Servlet
查看>>
Linux--SquashFS
查看>>