ios - 使用Masonry 怎么让cell高度自适应
迷茫
迷茫 2017-04-17 14:43:48
[iOS讨论组]

使用Masonry 怎么让cell高度自适应,以前一直用frameModel来解决cell高度自适应,最近使用Masonry,想了好久也没有什么好的方案,请大神赐教

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
PHP中文网

目前我也在使用Masonry,然后使用autolayout来计算cell高度,cell的代码用手写的方式实现。
尝试过计算cell高度,但是都会出现警告,原因是cell的contentView宽高不对。
目前使用“UITableView-FDTemplateLayoutCell”加Masonry来计算高度,没有什么问题。

PHPz

首先,不是大神。
但是之前研究过利用autolayout对cell进行约束然后tableview自动计算高度。
1.tableViewcell 用autolayout约束的问题
上面是之前的一个回答,我是利用了两种方法来计算cell的高度。题主可以先看一下。
2.Using Auto Layout in UITableView for dynamic cell layouts & variable row heights
我是利用stackoverflow提到的这个方法来进行约束来自动计算高度的。(顺便说一下如果题主用上面那个连接的方法,记得选择ios7的方法,因为我是用ios8的方式后来项目要兼容ios7我悲剧了。)
3.最后,上一个github的UITableView-FDTemplateLayoutCell。
这个是一个90后程序员开源的利用自动布局的方式来自动计算cell高度的开源代码,他博客里也写了相关的用法,这个项目已经快1000star了。

另外,很想知道题主用frameModel计算cell高度的方式,刚刚查了以下没查到,有机会的能和我说一下吗很想学习以下这个方法。

以上,希望对题主有帮助。

大家讲道理

不需要什么第三方,跟使用Autolayout设置自动行高一样。

  1. 使用masonry设置想要撑开cell的view约束的上下左右

  2. 如果是label,想要自动行高,那么设置行数为0

  3. vc中设置tableview的预估行高和类型为自动行高

    self.tableView.estimatedRowHeight = 44;
    
    self.tableView.rowHeight = UITableViewAutomaticDimension;
  1. 完全跟AutoLayout没区别,特别需要注意的是,创建约束不要放在layoutSubviews,可以放在视图创建的下面或者是updateConstraints方法中

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号