UITableViewCell使用Masonry布局自适应时遇到的问题

一般情况下,直接使用masonry对控件进行顶部和底部(相对于父控件)进行约束,实现控件的高度和间距充满父控件,同时对UITableView进行 _baseTableView.rowHeight = UITableViewAutomaticDimension;或者 _baseTableView.estimatedRowHeight = 100设置。estimatedRowHeight可以随机设置一个数字。
但是本人遇到的问题有点蛋疼,具体的结果如下图:UITableViewCell使用Masonry布局自适应时遇到的问题

需求是根据后台数据动态判定@“已阅人数”和@“提醒未阅人员”动态显示。我在自定义cell的.m文件中,在cell初始化的时候把控件加载在cell上,在layoutSubViews中对空间进行约束,在setmodel中对后台返回的数据进行判断后来决定@“已阅人数”和@“提醒未阅人员”是否显示,页面数据加载的时候就出现上图的UI显示。
后台通过断点的方式进行排查时发现,layoutSubViews在setmodel后才会运行,这样就造成部分控件没有加载到cell上时@“已阅人数”和@“提醒未阅人员”就已经开始布局了,默认的布局就是如上图所示。
解决上述问题的方法就是在cell初始化的时候就开始对cell上的控件进行布局,这可以保证所有的控件在setmodel之前都会在cell显示,并根据model的数据对特定控件进行约束刷新,如下图:UITableViewCell使用Masonry布局自适应时遇到的问题