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

标签 swift uicollectionview constraints snapkit

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

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

这是我设置约束的方法:

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

Here is what I get instead

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

最佳答案

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

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

希望对你有帮助

关于swift - Snapkit centerY 约束将项目置于中心 Y 轴上方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55856062/

相关文章:

ios - UITableViewCell 约束未更新

java - Optaplanner 添加机房限制

ios - TableView 不使用 ReloadData() 进行更新

ios - 如何在 ios 13 中显示的 View Controller 下方设置系统背景颜色

ios - UICollectionViewController 页脚在结束编辑后未正确重新定位自身

ios - UICollectionViewFlowLayout 中的动画更改

ios - 如何在滚动时隐藏和显示带有动画效果的标题 View

swift - 在 Swift 中为闭包分配属性

swift - 根据该标题内的 Collection View 动态内容显示 collectionView 的标题大小不起作用

mysql - 这个 "_ifbk"约束在我的表中做什么?