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
相关推荐
北京盟通科技官方账号1 小时前
精准医疗的未来之一:EtherCAT携手实时解决方案助力医疗器械中的控制与传输
人工智能·机器人·自动化·健康医疗·制造
初级代码游戏2 小时前
iOS开发 SwiftUI Text的基本用法
ios·swiftui·swift
CICI131414132 小时前
自动化焊接机器人厂家哪家好?
人工智能·机器人·自动化
守城小轩4 小时前
Chromium 142 编译指南 Windows篇:depot_tools 安装和配置(三)
自动化·chrome devtools·指纹浏览器·浏览器开发
码农小白猿6 小时前
IACheck优化电梯定期检验报告:自动化术语审核提升合规性与效率
大数据·运维·人工智能·ai·自动化·iacheck
守城小轩8 小时前
Chromium 142 编译指南 Windows篇:获取源代码(五)
自动化·chrome devtools·指纹浏览器·浏览器开发
0思必得010 小时前
[Web自动化] JS基础语法与数据类型
前端·javascript·自动化·html·web自动化
TheNextByte110 小时前
如何安全有效地清除iPad数据以便出售?
安全·ios·ipad
十二测试录11 小时前
Android和iOS测试区别
android·经验分享·ios·职场发展·ab测试
工业HMI实战笔记11 小时前
HMI “卡成 PPT” 怎么办?—— 性能优化指南
ui·性能优化·自动化·交互