Snapkit centerY约束将项目放在中心Y轴上方

问题描述 投票:0回答:3

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

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

以下是我设置约束的方法:

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

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

swift uicollectionview constraints snapkit
3个回答
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
    }()

希望能帮助到你


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)
        }
    }

}

0
投票

快速简便:

myLabel.snp.makeConstraints { (make) in
    make.center.equalTo(self.topView.snp.center)
}
© www.soinside.com 2019 - 2024. All rights reserved.