美文网首页UI
iOS UICollectionView 代码布局reloadD

iOS UICollectionView 代码布局reloadD

作者: Singularity_Lee | 来源:发表于2021-05-25 18:11 被阅读0次

    项目中使用collectionView纯代码frame布局实现一个简易的segment时,遇见了reloadData后页面布局未刷新问题。
    问题虽小,但总会忽略,因此记录

    在初次页面实现条数为2时显示正常


    条数2

    但在切换为条数1的数据时cell的尺寸未刷新


    条数1

    打断点时无论numberOfItemsInSectioncellForItemAtIndexPath 还是sizeForItemAtIndexPath中的所有数据都显示正常

    后经测试为cell中布局相关问题,因为内容简易因此没使用masonry方法,布局在init中仅使用纯代码frame方式实现一次,collectionView在reloadlayout方法无法更新页面布局所造成的

    因此将布局在layoutSubviews中实现或使用masonry实现布局即可解决此问题

    - (void)layoutSubviews{
        [super layoutSubviews];
        _itemBtn.func_frame(self.bounds);
        _itemSeg.func_frame(CGRectMake(self.width-0.25, 0, 0.5, self.width));
    }
    
    切换正常

    ps:后看其他相关问题并验证后reloadSections:[NSIndexSet indexSetWithIndex: ]方法也可解决相关问题
    精确的reload item | section 会有效刷新指定的内容
    或直接调用setNeedsLayout也可实现刷新效果

    相关文章

      网友评论

        本文标题:iOS UICollectionView 代码布局reloadD

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