Установите вертикальное положение для UILabel в UICollectionViewCell, используя UILayoutGuide

Я совершенно новичок в UILayoutGuide. Я хотел бы разместить UILabel в середине белого пространства под imageView, который является суперпредставлением как imageView, так и UILabel (см. Иерархию представлений ниже).

Обычно я добавляю другое представление и устанавливаю верхнее ограничение для UIImageView, а нижнее ограничение - для нижнего края, а затем центрирую метку по горизонтали и вертикали относительно вида.

Но я решил добиться этого с помощью 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 ответ

введите описание изображения здесь

Следуйте Шаги -

1) Добавьте imageView с ограничением в начале, в конце и сверху = 0 и задайте соотношение сторон изображения, чтобы оно автоматически получало размер в соответствии с ячейкой

введите описание изображения здесь

2) Теперь добавьте uiView чуть ниже вашего imageView и установите для него 0 ограничений в качестве конечного, нижнего, ведущего и 0 ограничений на нижнюю часть изображения, как показано ниже, и сделайте цвет uiView прозрачным, чтобы он не отображался

введите описание изображения здесь

3) Теперь перетащите метку в UiView и добавьте ее горизонтально и вертикально по центру в контейнер UiView.

введите описание изображения здесь

и результат будет как ожидалось

Пожалуйста, проверьте следующую ссылку, чтобы загрузить XIB-файл для collectionViewCell

Link - https://drive.google.com/a/erginus.com/file/d/0B2WiGVeE-REPakh3c21rWDlEWUU/view?usp=sharing
Другие вопросы по тегам