我正在尝试在每个单元格中使用uiscrollview实现集合视图,并且每个scrollview中都包含一些照片。
CollectionView可垂直滚动,每个单元格都可以水平滚动。
注意:图片是可点击的按钮!
我想这样做:
如果用户点击任何单元格中的图片,它应该展开并显示为集合视图上的弹出窗口。检查按下了哪个按钮变得非常困难。是否有更容易的解决方案来观察点击及其来源?
答案 0 :(得分:0)
如果您使用Target-Action方法来处理点击,您只需传递一个带有
参数的选择器 @objc func handleButtonTap(_ button: UIButton)
button
这里是对点击按钮的引用。
您可以使用以下方法将目标添加到按钮:
button.addTarget(self, action:#selector(handleButtonTap), for: .touchUpInside)
编辑:
如果要检查IndexPath,可以在选择器中提供其他参数forEvent: UIEvent
并使用此事件以及以下扩展名
extension UICollectionView {
func indexPath(forEvent: UIEvent) -> IndexPath? {
return forEvent.allTouches?
.first
.map { $0.location(in: self) }
.flatMap { indexPathForItem(at: $0) }
}
}