ToB企服应用市场:ToB评测及商务社交产业平台

标题: iOS UICollectionViewCell 点击事件自动化埋点 [打印本页]

作者: 光之使者    时间: 18 小时前
标题: iOS UICollectionViewCell 点击事件自动化埋点
iOS 中经常要进行埋点,我们这里支持 UICollectionViewCell. 进行自动化埋点,思路:
通过hook UICollectionViewCell 的setSelected:方法,
则新的方法中执行埋点逻辑,并调用原来的方法
直接上代码
  1. @implementation UICollectionViewCell (LB)
  2. + (void)load
  3. {
  4.     instanceMethodExchangeImplementations([self class], @selector(setSelected:), [self class], @selector(setSelectedWithFilter:));
  5. }
  6. -(void)setSelectedWithFilter:(BOOL)selected
  7. {
  8.     // 过滤拼音键盘提示词
  9.     if (selected && !self.skipTrack ) {
  10.         UIView *tempSuperView = self.superview;
  11.         while (tempSuperView) {
  12.             if ([tempSuperView isKindOfClass:[UICollectionView class]]) {
  13.                 break;
  14.             }
  15.             tempSuperView = tempSuperView.superview;
  16.         }
  17.         // 非LBScrllView的cell,才由setSelected触发点击采集,LB cell由didSelected触发,
  18.         if (tempSuperView && [tempSuperView isKindOfClass:[UICollectionView class]]
  19.             && ![tempSuperView isKindOfClass:[LBCollectionView class]] && ![tempSuperView isKindOfClass:[LBScrollView class]]) {
  20.             UICollectionView *collectionView = (UICollectionView *)tempSuperView;
  21.             if (![collectionView isDragging] && ![collectionView isTracking] && ![collectionView isDecelerating]) {
  22.                 [self setMonitorSelected:selected];
  23.             }
  24.         }
  25.     }
  26.     [self setSelectedWithFilter:selected];
  27. }
  28. - (void)setMonitorSelected:(BOOL)selected
  29. {
  30.     if (selected && !self.skipTrack) {
  31.      //执行埋点逻辑
  32.    }
  33. }
  34. - (void)logClickCell
  35. {
  36. }
  37. @end
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4