博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UITableView定制accessoryView出现的连带问题
阅读量:5856 次
发布时间:2019-06-19

本文共 1725 字,大约阅读时间需要 5 分钟。

为了美化UI,想实现如下图的效果:点击高亮

出发点是好的。没想到,出现了下图的连带问题:选择一行的时候,竟然连带的出现了高亮效果

这个如何是好?经过网络搜索,发现我不是第一个遇到这样的问题:

1 UIButton *accessoryButton = [UIButton buttonWithType:UIButtonTypeCustom]; 2     accessoryButton.frame = CGRectMake(0, 0, 32, 32); 3     [accessoryButton setImage:[UIImage imageNamed:@"AccessoryButtonNormal.png"] forState:UIControlStateNormal]; 4     [accessoryButton setImage:[UIImage imageNamed:@"AccessoryButtonInverse.png"] forState:UIControlStateHighlighted]; 5     [accessoryButton addTarget:self action:@selector(doAction:) forControlEvents:UIControlEventTouchUpInside]; 6     cell.accessoryView = accessoryButton;

连使用方法都是一样的,看来我不是第一个这么干的。这哥哥也不给解决办法,不知道最后搞定没问题。困惑了一天以后,终于让我找到了一条小缝隙,实现了下图的效果:

这个点击行的时候,整行高亮是系统自带的功能,没办法改变,怎么办呢?釜底抽薪,在它高亮完以后再把效果取消!这个出发点是对的,可是浪费了大把的时间以后发现还是达不到预期的效果,怎么呢?查sdk的时候无意间发现UITablview有个willSelectRowAtIndexPath的方法吧。好吧,这个willSelectRowAtIndexPath比didSelectRowAtIndexPath应该靠前吧,在这里面试一下

1 - (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 2     UITableViewCell *Cell = [tableView cellForRowAtIndexPath:indexPath]; 3     [(UIButton *)Cell.accessoryView setHighlighted:NO]; 4     return indexPath; 5 }

 

开始直接用的上面的代码,发现好使靠人品,后来想想即然在这个地方可以,那就延时执行一下,于是用了:

- (void)mySelectRow:(UIButton *)actionBtn{     [actionBtn setHighlighted:NO]; } - (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{     UITableViewCell *Cell = [tableView cellForRowAtIndexPath:indexPath];     [self performSelector:@selector(mySelectRow:) withObject:(UIButton *)Cell.accessoryView afterDelay:0];     return indexPath; }

于是乎,好使了!

转载自:http://rainbird.blog.51cto.com/211214/687170

转载于:https://www.cnblogs.com/pengyingh/articles/2339188.html

你可能感兴趣的文章
全局缩放情况下的局部不缩放解决方案
查看>>
Python爬虫基础
查看>>
技术实践如何支持演进式架构和持续集成
查看>>
敲黑板,划重点:Docker 1.13更新有哪些看点?
查看>>
阅读者(29):《精益企业》——高绩效组织如何规模化创新
查看>>
红帽峰会2018第一天:数字转型扛把子OpenShift
查看>>
2017年InfoQ最受欢迎30项内容清单
查看>>
当我们输入一条SQL查询语句时,发生了什么?
查看>>
5G一周热闻:中国5G芯片关键材料获突破,华为首款折叠屏手机亮相
查看>>
C2x将成为C语言的下一个ISO标准
查看>>
Linus Torvalds:Linux背后的智者
查看>>
IPv6新形势下的安全解决方案
查看>>
白话中台战略:中台是个什么鬼?
查看>>
对《Clojure in Action》第二版的书评与作者问答
查看>>
QCon北京2015:移动开发最佳实践专题前瞻
查看>>
AWS推出OpenJDK长期支持版本Amazon Corretto
查看>>
将团队迁移到可视化项目管理软件
查看>>
Mozilla开发全新的公开网络API WebXR 来实现增强现实
查看>>
Eclipse基金会发布MicroProfile 2.2,适用于Java微服务
查看>>
从图形到像素:前端图形编程技术概览
查看>>