Swift iOS 14上的TableView中会出现一个额外的UITableViewCellContentView覆盖,防止点击,但在iOS 13上可以正常工作
在使用XCode 12编译的iOS 14设备上,一个额外的UITableViewCellContentView显示在表视图的内容上方,防止点击其下方的任何按钮。这只出现在iOS 14中。它不会出现在iOS 13中。有没有关于如何移除它的想法?Swift iOS 14上的TableView中会出现一个额外的UITableViewCellContentView覆盖,防止点击,但在iOS 13上可以正常工作,swift,ios14,xcode12,Swift,Ios14,Xcode12,在使用XCode 12编译的iOS 14设备上,一个额外的UITableViewCellContentView显示在表视图的内容上方,防止点击其下方的任何按钮。这只出现在iOS 14中。它不会出现在iOS 13中。有没有关于如何移除它的想法? 您必须将视图添加到单元格内容视图,如下所示: contentView.addSubview(button) 并将您的按钮锚定到contentView: button.topAnchor.constraint(equalTo: contentView.to
您必须将视图添加到单元格内容视图,如下所示:
contentView.addSubview(button)
并将您的按钮锚定到contentView:
button.topAnchor.constraint(equalTo: contentView.topAnchor).isActive = true
我也遇到过同样的问题,尽管我不确定我的解决方案是否适用于您。我的问题是由UISearchControllerDelegate方法presentSearchController在iOS14中被调用两次引起的。调用此方法时,我们在当前视图上叠加了一个新的“containerView”,并显示搜索结果。调用didDismissSearchController时,我们删除了此视图。问题是presentSearchController被调用了两次,从而创建了两个“containerViews”。我们会移除其中一个,但另一个卡住了,截获了我们所有的接触。我们只需要确保不添加两个“ContainerView” 这就是我们所做的
func presentSearchController(_ searchController: UISearchController) {
guard containerView == nil else {return}
containerView = UIView()
viewController.view.addSubview(containerView)
//present search results
}
func didDismissSearchController(_ searchController: UISearchController) {
containerView.removeFromSuperview()
containerView = nil
//any other code you need
}
试试这个代码
contentView.isUserInteractionEnabled = true
有同样的问题,我们这样做:
sendSubviewToBack(contentView)
如果您的项目很大,并且很难将每个
addSubview
更改为contentView.addSubview
,则可以将此扩展添加到您的项目中:
extension UITableViewCell {
open override func addSubview(_ view: UIView) {
super.addSubview(view)
sendSubviewToBack(contentView)
}
}
这已经完成了。您的回答意味着这个问题将发生在所有iOS 10+上,但这个问题只在iOS 14上出现。我也有同样的问题,在contentView上添加子视图而不是视图对我来说很有效。但是,您添加的关于锚的代码在这里毫无意义@RaviDamani为什么你说这意味着iOS 10+会出现问题?对不起,你完全正确。你的代码修复了它!