美文网首页
UICollectionView 展开收起 实践笔记

UICollectionView 展开收起 实践笔记

作者: 嗯哎嘶唠咯 | 来源:发表于2017-11-12 12:08 被阅读291次

    我的2017年就这么快要结束了?那就在扯扯犊子吧 🤜

    问题

    效果图.gif

    这个筛选框是由uicontrol 添加上collectionview 实现的,但是,收起的这个效果有一些问题:collectionview的内容直接就消失了,感觉十分的诡异。
    起初我是这么写收起的:
    只改变了collectionview 的 frame.size.height:

     [UIView animateWithDuration:1 animations:^{
    
            _collectionView.frame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, 0);
            self.backgroundColor = [UIColor colorWithWhite:0 alpha:0];
        } completion:^(BOOL finished) {
           /*略*/
        }];
    

    解决

    调用layoutIfNeed 方法

    处理办法.png

    经过我坚持不懈的百度谷歌,终于~还是没找到我想要的(可能搜索的姿势不对)
    但是我尝试着调用了 layoutIfNeeded方法之后,效果就正常显示了(内容不会立刻消失了)。

    思考

    我想 这应该跟collectionview的一个属性有关系:collectionViewLayout,我用我4级英语水平翻看了官方文档,它主要管理collectionview 内容的布局的,包括所有的cell和装饰view(supplementary views)(:P 嗯,大概就是这样),在动画中调用layoutIfNeed ,可能会重新去布局设置这个属性(反正跟collectionview 的内部机制有关系吧),最终解决了这个问题。

    PS

    关于思考,如果有更好的解释,不吝赐教🤝。

    相关文章

      网友评论

          本文标题:UICollectionView 展开收起 实践笔记

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