我正在调试这个问题,我在这个函数的末尾有一个断点。当我使用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)
}
}
有人可以建议调试提示吗?
答案 0 :(得分:2)
您能告诉我您在哪里打电话 addOverlayView()。
我认为它应该来自 awakeFromNib()
答案 1 :(得分:0)
您可以使用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)
}
}
答案 2 :(得分:0)
对不起男孩,这是一个愚蠢的屏幕外错误。当我应该使用cellForItem(at :)时,我正在使用dequeueReusableCell。我添加了正确的代码。
override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let cell = collectionView.cellForItem(at: indexPath) as! BrowseCell
cell.addOverlayView()
}