我对 UILayoutGuide 完全陌生。我想将 UILabel 放置在 imageView 下方空白区域的中间,这是 imageView 和 UILabel 的 super View (请参阅下面的 View 层次结构)。
通常,我会添加另一个 View ,并将顶部约束设置为 UIImageView,将底部约束设置为底部边缘,然后将标签水平和垂直居中于 View 。
但我决定使用 UILayoutGuide 来实现它。这是我的代码:
override func awakeFromNib() {
super.awakeFromNib()
let topGuide = UILayoutGuide()
let bottomGuide = UILayoutGuide()
self.view.addLayoutGuide(topGuide)
self.view.addLayoutGuide(bottomGuide)
topGuide.bottomAnchor.constraint(equalTo: title.topAnchor).isActive = true
bottomGuide.topAnchor.constraint(equalTo: title.bottomAnchor).isActive = true
self.view.layoutIfNeeded()
}
结果是我的UILabel根本不显示。我做错了什么?
最佳答案
按照步骤操作 -
1) 添加一个带有前导、尾随和顶部约束 = 0 的 imageView 并指定图像的长宽比,以便它会根据单元格自动获取大小
2) 现在在 imageView 正下方添加一个 uiView,并给它 0 个约束作为尾随、底部、前导和 0 个图像底部约束,如下所示,并将 uiView 颜色设置为 Clear,这样它就不会显示
3) 现在在 UiView 中拖动一个标签并将其水平和垂直居中添加到 UiView 容器中。
结果将如预期
请检查以下链接下载collectionViewCell的xib文件
Link - https://drive.google.com/a/erginus.com/file/d/0B2WiGVeE-REPakh3c21rWDlEWUU/view?usp=sharing
关于ios - 使用 UILayoutGuide 设置 UICollectionViewCell 中 UILabel 的垂直位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45928150/