ios - 使用 UILayoutGuide 设置 UICollectionViewCell 中 UILabel 的垂直位置

标签 ios swift uicollectionview uilayoutguide

我对 UILayoutGuide 完全陌生。我想将 UILabel 放置在 imageView 下方空白区域的中间,这是 imageView 和 UILabel 的 super View (请参阅下面的 View 层次结构)。

enter image description here

通常,我会添加另一个 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根本不显示。我做错了什么?

最佳答案

enter image description here

按照步骤操作 -

1) 添加一个带有前导、尾随和顶部约束 = 0 的 imageView 并指定图像的长宽比,以便它会根据单元格自动获取大小

enter image description here

2) 现在在 imageView 正下方添加一个 uiView,并给它 0 个约束作为尾随、底部、前导和 0 个图像底部约束,如下所示,并将 uiView 颜色设置为 Clear,这样它就不会显示

enter image description here

3) 现在在 UiView 中拖动一个标签并将其水平和垂直居中添加到 UiView 容器中。

enter image description here

结果将如预期

请检查以下链接下载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/

相关文章:

ios - 我们可以在谷歌地图中的标记周围添加自定义 View 或脉冲环动画吗

ios - 多个项目和 Cocoapods

string - 在 Swift 中从单个字符串创建 [NS] 字典

ios - 如何使用 Collection View 创建 2 x 2 网格布局?

ios - View Controller 之间的共享单元格

ios - 从服务器丢失 App Store 的收据

ios - 没有订阅者时停止发布,有订阅者时自动开始

ios - 从字符串转换为日期时,日期格式化程序减去一年并更改日期

ios - swift 3 : Dismiss popup ViewController

ios - 更新 UICollectionView 中的标签