runtime 拦截所有tableview代理的cell点击代理方法

[复制链接]
92 8
遇到一个需求:给所有app能点击的东西加一个点击音效。
undefinedundefinedundefinedundefinedundefinedp.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #703daa}span.s1 {font-variant-ligatures: no-common-ligatures}

举报 使用道具

回复

9 个评论

youxi521zeng  新手上路  发表于 2018-5-18 19:18:06  | 显示全部楼层
给cell写个基类,实现下面这个方法~
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    [super touchesBegan:touches withEvent:event];
   //做你想做的事
}

举报 使用道具

回复
149826508  新手上路  发表于 2018-5-18 19:31:31  | 显示全部楼层
遇到一个需求:给所有app能点击的东西加一个点击音效。
undefinedundefinedundefinedundefinedundefinedp.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #703daa}span.s1 {font-variant-ligatures: no-common-ligatures}

举报 使用道具

回复
smiller  新手上路  发表于 2018-5-18 19:49:49  | 显示全部楼层
你要单独仅仅针对tableview的话。

写个父类不就完事了。

举报 使用道具

回复
a2282c  新手上路  发表于 2018-5-18 21:31:09  | 显示全部楼层
楼主怎么弄的 ,我拦截不到.

Method method1 = class_getClassMethod([self class], @selector(tableView:didSelectRowAtIndexPath:));
        Method method2 = class_getClassMethod([self class], @selector(DJtableView:didSelectRowAtIndexPath:));
        method_exchangeImplementations(method1, method2);

举报 使用道具

回复
luju99  新手上路  发表于 2018-5-18 21:47:49  | 显示全部楼层
请问,一般tableview的代理都是控制器,能不能 用类似methodswizzle的方式,动态去拦截控制器的tableview的cell点击代理方法

举报 使用道具

回复
alexuo  新手上路  发表于 2018-5-18 22:27:19  | 显示全部楼层
我想替换这个 UItableview的 tableView:didSelectRowAtIndexPath:  这个该如何实现啊  大神

举报 使用道具

回复
yuxiaohao19  新手上路  发表于 2018-5-18 22:36:18  | 显示全部楼层
不知道,但是delegate调用方方法前肯定会判定是否实现了delegate方法。
我估计。
不太乐观。

举报 使用道具

回复
sjc22923  新手上路  发表于 2018-5-19 01:16:24  | 显示全部楼层
来个红包 手把手教你怎么做

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

ios.irunthink.com
搜索
热搜: iOS swift 下拉刷新

图文热点

更多

开发教程

更多

客服中心

400-800 周一至周日 9:30-17:30 仅收市话费

关注我们

  • 微信扫描
  • 关注微信
关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
快速回复 返回顶部 返回列表