UICollectionViewCell 中的 Swift 3 按钮不响应触摸
Posted
技术标签:
【中文标题】UICollectionViewCell 中的 Swift 3 按钮不响应触摸【英文标题】:Swift 3 Button in UICollectionViewCell not respond to touch 【发布时间】:2018-03-08 09:30:41 【问题描述】:我有一个UICollectionViewCell
和里面的两个按钮,但是按钮不响应触摸,我以编程方式创建按钮并通过addSubView
将其添加到单元格中它可以工作,但是当我通过持有人添加时。addSubView
不是工作!
UserInteractionEnabeld
的持有人是真的!
请帮忙
class FavoriteProductCollectionViewCell: UICollectionViewCell
@IBOutlet weak var holder: UIView!
override func awakeFromNib()
super.awakeFromNib()
let btnFindBestPrice = UIButton(frame: CGRect(x: 0, y: 0, width: 151, height: 20))
btnFindBestPrice.setTitle("Find best price", for: .normal)
btnFindBestPrice.backgroundColor = UIColor.ButtonBackGreen
btnFindBestPrice.isUserInteractionEnabled = true
btnFindBestPrice.addTarget(self, action: #selector(findBestPrice), for: .touchUpInside)
// AddTarget not working
holder.addSubview(btnFindBestPrice)
// AddTarget works fine
addSubview(btnFindBestPrice)
【问题讨论】:
检查holder.isUserInteractionEnabled
是否设置为true。另外,检查holder
是否足够大。您能否将其背景颜色设置为红色/绿色或其他任何值,并检查按钮是否对它来说不是太大?我最近收到了这个案子。按钮可见,但超级视图(在您的情况下为 holder
)太小,导致触摸被忽略。
分享 UI 你想如何实现这一点?
【参考方案1】:
我不知道为什么!?但是我创建了另一个具有相同配置的单元格,效果很好!!!!
【讨论】:
【参考方案2】:在这种情况下,最好在开头添加self
。像这样:
self.holder.addSubview(btnFindBestPrice)
【讨论】:
以上是关于UICollectionViewCell 中的 Swift 3 按钮不响应触摸的主要内容,如果未能解决你的问题,请参考以下文章
UICollectionViewCell 中的 Outlet 为零
接收关于从其父集合或表视图中删除 UICollectionViewCell(或 UITableViewCell)的通知
UICollectionViewCell 中的 SwiftUI 视图