美文网首页
Swift开发 SnapKit 约束Unable to simu

Swift开发 SnapKit 约束Unable to simu

作者: 闲云悠鹤蝶恋舞 | 来源:发表于2020-07-01 17:26 被阅读0次

    场景如下:

    在cell上面添加UICollectionView和一些其他的视图,其中UICollectionView的布局如下所示:

    collectionView.snp.makeConstraints { (make) in
        make.top.equalTo(contentLabel.snp.bottom).offset(10)
        make.left.right.equalTo(statusLabel)
        make.bottom.equalToSuperview().offset(-15)
        make.height.equalTo(COLLECTIONVIEW_HEIGHT)
    }
    

    报警告如下:

    image.png

    原因:

    原因是我的cell刚开始高度为0,在某些条件下,会变成另外一个height,然而由于CollectionView会默认添加两个约束就是UIView-Encapsulated-Layout-Width 和UIView-Encapsulated-Layout-Hight保证大小适中,但是我的cell的高度刚开始默认为0,它的系统默认约束和我的设置的约束权限冲突,造成的。

    解决办法:降低自己约束权限就行了(约束时使用priorityLow)

    // 对collectionView的约束
    collectionView.snp.makeConstraints { (make) in
        make.top.equalTo(contentLabel.snp.bottom).offset(10)
        make.left.right.equalTo(statusLabel)
        make.bottom.equalToSuperview().offset(-15).priorityLow()
        make.height.equalTo(COLLECTIONVIEW_HEIGHT)
    }
    
    // 在某种条件下,更新collectionView的约束
    collectionView.snp.updateConstraints { (make) in
        make.height.equalTo(temp.height)
        make.bottom.equalToSuperview().offset(temp.bottomOffset).priorityLow()
    }
    

    相关文章

      网友评论

          本文标题:Swift开发 SnapKit 约束Unable to simu

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