Swift: addSubview не отображается в иерархии представлений - PullRequest
0 голосов
/ 13 мая 2018

enter image description here

У меня проблема с отладкой, и в конце этой функции у меня есть точка останова.Когда я проверяю это с помощью Capture View Hierarchy, подпредставление, называемое overlayView, нигде не видно.

import UIKit

class BrowseCell: UICollectionViewCell {
    @IBOutlet weak var imageView: UIImageView!

    func addOverlayView() {
        let overlayView = UIView()
        overlayView.alpha = 0.6
        overlayView.backgroundColor = .green
        overlayView.frame = self.bounds
        self.imageView.addSubview(overlayView)
        self.bringSubview(toFront: overlayView)
    }
}

Может кто-нибудь предложить советы по отладке?

Ответы [ 3 ]

0 голосов
/ 13 мая 2018

Подскажите, пожалуйста, откуда вы звоните addOverlayView () .

Я считаю, что он должен вызываться из awakeFromNib ()

0 голосов
/ 13 мая 2018

Извините, ребята, это глупая ошибка за кадромЯ использовал dequeueReusableCell, когда я должен был использовать cellForItem (в :).Я добавил правильный код.

override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        let cell = collectionView.cellForItem(at: indexPath) as! BrowseCell

        cell.addOverlayView()
    }
0 голосов
/ 13 мая 2018

Вы можете просто добавить вид наложения в UIImageView, используя метод insertSubview, как показано ниже:

import UIKit

class BrowseCell: UICollectionViewCell {
    @IBOutlet weak var imageView: UIImageView!

    func addOverlayView() {
        let overlayView = UIView(frame: self.bounds)
        overlayView.alpha = 0.6
        overlayView.backgroundColor = .green
        self.imageView.insertSubview(_ view: overlayView, at index: 0)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...