无法再与iOS 14中的UICollectionViewCell或UITableViewCell内的内容交互

无法再与iOS 14中的UICollectionViewCell或UITableViewCell内的内容交互,ios,uitableview,uikit,uicollectionviewcell,ios14,Ios,Uitableview,Uikit,Uicollectionviewcell,Ios14,将手机更新到iOS 14后,我无法再与我的应用程序的UICollectionViewCell或UITableViewCell内的内容进行交互。这个问题也存在于运行iOS 14的iOS模拟器中,但在iOS 13及以下版本中一切正常 我在单元格中有按钮和其他集合视图,它们不再可以交互。就好像整个单元格内容都是静态的。下面是我的UICollectionViewCells和UICollectionViewController中的一些代码,但是UITableViewCells中存在相同的问题。我用的是Sw

将手机更新到iOS 14后,我无法再与我的应用程序的
UICollectionViewCell
UITableViewCell
内的内容进行交互。这个问题也存在于运行iOS 14的iOS模拟器中,但在iOS 13及以下版本中一切正常

我在单元格中有按钮和其他集合视图,它们不再可以交互。就好像整个单元格内容都是静态的。下面是我的
UICollectionViewCells
UICollectionViewController
中的一些代码,但是
UITableViewCells
中存在相同的问题。我用的是Swift 5
didSelectItemAt
和类似的功能工作正常,它在单元格的
contentView
中进行交互,特别是似乎不起作用。我可以粘贴更多的代码,如果必要的话,因为我修剪了一些绒毛和其他代码,我已经缩小到不是一个问题

由于这个问题在
UICollectionViewCell
UITableViewCell
中都存在,我认为我在更基本的层面上做错了什么

来自
UICollectionViewCell
的相关代码:

override init(frame: CGRect) {
    super.init(frame: frame)
    setupContainers()
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

func setupContainers() {
    // Adding subviews like so...
    addSubview(subviewToAdd)

    // Anchor all subviews using NSConstraints
}
然后从
UICollectionViewController

override func viewDidLoad() {
    super.viewDidLoad()
    setStyleAndDelegates()
}

private func setStyleAndDelegates() {
    collectionView?.backgroundColor = UIColor.white

    collectionView?.delegate = self
    collectionView?.dataSource = self
    
    collectionView?.register(MyCell.self, forCellWithReuseIdentifier: eventCellId)
}

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: eventCellId, for: indexPath) as! MyCell
    return cell
}
编辑: 进一步检查视图层次结构后,在iOS 14中,有一个附加的
UIView
直接放置在单元格中所有内容的顶部。在iOS 13中,此视图不存在。照片附在下面。
感谢@Duncan C推荐您查看视图层次结构

只需通过
addSubview()

相反,应该使用
contentView.addSubview()
将内容添加到单元格的
contentView
。这解决了问题

在我当前的设置中,在iOS 13及以下版本中,仅使用
addSubview()
添加的内容出现在单元格的
contentView
上方。问题中的图片更好地描述了这一点


在iOS 14和我当前的设置中,此内容被插入到单元格的
contentView
下面,因此
contentView
阻止用户与直接添加到单元格的其余内容交互。

您发布的代码非常通用,你还没有提供太多关于细胞成分的信息,以及你在用它们做什么。您发布的代码调用了一个未显示的
setupCellWithEvent()
方法。您确实显示了UICollectionViewCell子类的部分代码,但看起来不完整。(如果您使用
dequeueReusableCell(withReuseIdentifier:for:)
调用它,那么它的
init?(编码器:)
方法将被调用,但您不支持该方法。您是否尝试使用Xcode视图调试工具查看视图层次结构是否有问题?我已完整添加了
setupCellWithEvent
函数,并将查看调试工具。谢谢。
setupCellWithEvent
没有不要对单元格本身的属性做任何事情,而是更新单元格子视图的内容。我确实使用
dequeueReusableCell
调用,但是
覆盖init(frame:CGRect)
在某些时候也会被调用,因为单元格具有角半径和背景色。检查视图层次结构后,会有一个附加的
UIView
直接放置在单元格中所有内容的顶部。这在iOS 13中不会出现(如添加到问题中的图片所示)。在我的表视图单元格中也会发生同样的情况。我将如何查找此视图是如何到达那里的?感谢您的帮助,我使用视图层次结构解决了问题,并添加了答案。我还将编辑问题,并仅粘贴复制问题所需的相关代码。这非常有用,在过去的3天中一直在使用。