当前位置: 首页 > news >正文

iOS UICollectionViewCell 点击事件自动化埋点

iOS 中经常要进行埋点,我们这里支持 UICollectionViewCell. 进行自动化埋点,思路:
通过hook UICollectionViewCell 的setSelected:方法,
则新的方法中执行埋点逻辑,并调用原来的方法

直接上代码



@implementation UICollectionViewCell (LB)

+ (void)load
{
    instanceMethodExchangeImplementations([self class], @selector(setSelected:), [self class], @selector(setSelectedWithFilter:));
}

-(void)setSelectedWithFilter:(BOOL)selected
{
    // 过滤拼音键盘提示词
    if (selected && !self.skipTrack ) {
        UIView *tempSuperView = self.superview;
        while (tempSuperView) {
            if ([tempSuperView isKindOfClass:[UICollectionView class]]) {
                break;
            }
            tempSuperView = tempSuperView.superview;
        }
        // 非LBScrllView的cell,才由setSelected触发点击采集,LB cell由didSelected触发,
        if (tempSuperView && [tempSuperView isKindOfClass:[UICollectionView class]]
            && ![tempSuperView isKindOfClass:[LBCollectionView class]] && ![tempSuperView isKindOfClass:[LBScrollView class]]) {
            UICollectionView *collectionView = (UICollectionView *)tempSuperView;
            if (![collectionView isDragging] && ![collectionView isTracking] && ![collectionView isDecelerating]) {
                [self setMonitorSelected:selected];
            }
        }
    }
    [self setSelectedWithFilter:selected];
}


- (void)setMonitorSelected:(BOOL)selected
{
    if (selected && !self.skipTrack) {
     //执行埋点逻辑
   }
}

- (void)logClickCell
{
 
}

@end

相关文章:

  • 计算机毕业设计SpringBoot+Vue.js相亲网站(源码+文档+PPT+讲解)
  • Unity中动态切换光照贴图LightProbe的方法
  • C++实现3D(EasyX)详细教程
  • DeepSeek蒸馏TinyLSTM实操指南
  • deepseek使用记录18——文化基因之文化融合
  • 数据结构(初阶)(六)----队列
  • Linux NAT和代理服务器
  • 【开源免费】基于SpringBoot+Vue.JS周边游平台系统(JAVA毕业设计)
  • 0x05 部门功能开发日志技术
  • 图漾PercipioIPTool软件使用
  • python基于后门的神经网络模型水印通用方法
  • AndroidStudio下载旧版本方法
  • miqiu的分布式锁(四):MySQL悲观锁解析
  • 线程控制(创建、终止、等待、分离)
  • 定位需要优化的SQL ,及如何优化SQL
  • 深入xtquant:掌握市场基础信息的获取技巧
  • React 第二十七节 <StrictMode> 的使用方法及注意事项
  • Unity XR-XR Interaction Toolkit开发使用方法(十三)组件介绍(XR Grab Interactable)
  • 开源项目Wren AI 文本到SQL解决方案详解
  • 电池管理系统(BMS)架构详细解析:原理与器件选型指南
  • 美国新泽西客运公司遭遇罢工:40年来首次,35万人受影响
  • 新华时评:博物馆正以可亲可近替代“高冷范儿”
  • 张家界一铁路致17人身亡,又有15岁女孩殒命,已开始加装护栏
  • 侵害孩子者,必严惩不贷!3名性侵害未成年人罪犯今日执行死刑
  • 一图读懂丨创新创业人才最高补贴500万元!临港新片区发布创客新政“十二条”
  • 清雪车司机未拉手刹下车导致溜车被撞亡,事故调查报告发布