CollectionView以UIScrollView作为单元格

时间:2017-04-25 19:19:07

标签: ios iphone swift uiscrollview uicollectionview

我正在尝试在每个单元格中使用uiscrollview实现集合视图,并且每个scrollview中都包含一些照片。

CollectionView可垂直滚动,每个单元格都可以水平滚动。

注意:图片是可点击的按钮!

我想这样做:

如果用户点击任何单元格中的图片,它应该展开并显示为集合视图上的弹出窗口。检查按下了哪个按钮变得非常困难。是否有更容易的解决方案来观察点击及其来源?

1 个答案:

答案 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) }
     }
}