繁体   English   中英

Swift:addSubview没有出现在视图层次结构中

[英]Swift: addSubview not appearing in 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)
    }
}

谁能建议调试提示?

你能告诉我从哪里调用addOverlayView()

我相信它应该从awakeFromNib()调用

您可以通过使用insertSubview方法在UIImageView中简单地添加叠加视图,如下所示:

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

抱歉,这是一个愚蠢的屏幕外错误。 当我应该使用cellForItem(at :)时,我正在使用dequeueReusableCell。 我添加了正确的代码。

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

        cell.addOverlayView()
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM