美文网首页
UICollectionViewFlowLayout详解(未完)

UICollectionViewFlowLayout详解(未完)

作者: 丢了理想 | 来源:发表于2018-11-14 14:39 被阅读0次

    需要初始化的,应该写在初始化方法init()里
    网上很多说设置要写在prepare()里的,都是错误的说法

    override init() {
            super.init()
    }
    

    prepare()会重复调用,需要设置collectionView或者其他init时无法获取的数据才应该用prepare(),避免重复设置

    override func prepare() {
            super.prepare()
            collectionView?.decelerationRate = .fast
    }
    
        //是否变化时重新布局
        override func shouldInvalidateLayout(forBoundsChange newBounds: CGRect) -> Bool {
            return true
        }
    
    //视图变化的数据
        override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
            let array = super.layoutAttributesForElements(in: rect)
          //这是要显示可见cell,不是所有的,如果要显示所有的,需要
    //self.layoutAttributesForItem(at: indexPath) 便利获取
    // array 里面元素是一个cell的所有相关数据UICollectionViewLayoutAttributes
    //更改 元素的frame等来达到修改自定义cell布局的效果
    //如果要特殊处理某个单独元素,layoutAttributesForItem(at indexPath: IndexPath) 然后在array中返回(不要重复添加已有的)
    return array
    
    }
    
        override func targetContentOffset(forProposedContentOffset proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint) -> CGPoint {
    //手动滚动时候的偏移数据(抬手)
    //可以设置滚动到某处时的处理,比如分页
    return  proposedContentOffset
    }
    

    相关文章

      网友评论

          本文标题:UICollectionViewFlowLayout详解(未完)

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