[关闭]
@buoge 2017-06-01T13:55:37.000000Z 字数 843 阅读 901

Collection view 通过继承统一事件处理,Cell通过实现不同代理触发个性化事件

程序构建


public protocol CellImageSacleAnimateDelegate: NSObjectProtocol{
touchBeganWithScale() //开始触摸
touchEndWithScale() // 触摸结束
didSelected() // 执行触摸事件方法
}

  1. func collectionView(_ collectionView: UICollectionView, shouldHighlightItemAt indexPath: IndexPath) -> Bool {
  2. // 如果他们都实现了ScaleImage的Delegate就可以转化为 Delegate.touchBeganWithScale()
  3. // Collection view 继承统一事件处理,所有collection cell的点击都可以被父类获取,所有的点击都可以汇聚到一处
  4. // 在不同cell 实现不同代理,在父类做类型判断,又可以对不同子类的不同事件进行处理
  5. if let itemCouponCell = collectionView.cellForItem(at: indexPath) as? ItemWithCouponCVCell {
  6. itemCouponCell.touchBeganWithScale()
  7. }else if let combinationCell = collectionView.cellForItem(at: indexPath) as? ProductCombinationItemCVCell {
  8. combinationCell.touchBeganWithScale()
  9. } else if let indexItemCell = collectionView.cellForItem(at: indexPath) as? IndexItemCVCell {
  10. indexItemCell.touchBeganWithScale()
  11. }
  12. return true
  13. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注