Snapkit centerY约束将项目置于中心Y轴上方

时间:2019-04-25 19:04:21

标签: swift uicollectionview constraints snapkit

我正在尝试制作一个自定义的UICollectionView单元类。该单元格由内容视图和标签组成。我希望标签位于水平和垂直视图的中心,但标签应位于内容视图的中心y轴上方。

我确保设置了约束,未设置其他约束,并且问题影响了内容视图中的所有视图(我添加了另一个视图并将其中心Y轴设置为测试,并且没用)。我还将内容视图和标签的背景色设置为对比,并确认标签未位于内容视图的中心y锚点上。

这是我设置约束的方式:

label.snp.makeConstraints{make in
            make.centerX.centerY.equalToSuperview()
        }

Here is what I get instead

这就是我得到的。显然,标签没有垂直居中。您可以看到我作为测试添加的蓝色UIView也不垂直居中。

3 个答案:

答案 0 :(得分:0)

我曾经以这种方式通过编程方式添加约束

self.view.addSubview(image)
image.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
image.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
image.heightAnchor.constraint(equalToConstant: 30).isActive = true
image.widthAnchor.constraint(equalToConstant: 30).isActive = true 

以这种方式声明我的图片

let image: UIImageView = {
        let theImageView = UIImageView()
        theImageView.image = UIImage(named: "ico_return")
        theImageView.translatesAutoresizingMaskIntoConstraints = false
        return theImageView
    }()

希望有帮助

答案 1 :(得分:0)

您可以尝试以下代码吗?

class FilterCollectionViewCell: UICollectionViewCell {


    let labelTemp = UILabel()

    override func awakeFromNib() {

        labelTemp.backgroundColor = .white
        labelTemp.textColor = .black
        labelTemp.text = "testing"
        self.contentView.addSubview(labelTemp)
        labelTemp.snp.makeConstraints { (make) in
            make.centerX.centerY.equalTo(self.contentView)
        }
    }

}

答案 2 :(得分:0)

快速简便:

myLabel.snp.makeConstraints { (make) in
    make.center.equalTo(self.topView.snp.center)
}