美文网首页
systemLayoutSizeFitting在cell中使用

systemLayoutSizeFitting在cell中使用

作者: 梁森的简书 | 来源:发表于2021-05-08 16:08 被阅读0次

    使用场景

    某个tableView A的某个cell A上有一个tableView B,tableView B上的cell高度是动态,要求tableView A的cell A的高度要和tableView B的高度一样。

    效果图

    0.table嵌套table.jpg

    cell A中的核心代码:

    - (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize withHorizontalFittingPriority:(UILayoutPriority)horizontalFittingPriority verticalFittingPriority:(UILayoutPriority)verticalFittingPriority{
        [self.tableView layoutIfNeeded];
        CGFloat h = self.tableView.contentSize.height;
        return CGSizeMake(targetSize.width, h);
    }
    

    systemLayoutSizeFittingSize方法返回了当前view的宽高

    注意:

    1. 如果tableView B上的cell高度是动态的,需要设置tableview的estimatedRowheight属性,且尽量小一些,如1。
    2. 如果tableView B上的cell高度是固定的,需要设置tableview的sectionHeaderHeight和sectionFooterHeight为0.0。
    3. tableView的代理方法heightForRow方法不实现,才会调用systemLayoutSizeFittingSize

    demo地址:https://github.com/yangguanghei/DynamicTableView.git

    相关文章

      网友评论

          本文标题:systemLayoutSizeFitting在cell中使用

          本文链接:https://www.haomeiwen.com/subject/nhqedltx.html