[英]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.