UITableView定制accessoryView出现的连带问题

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

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

这个如何是好?经过网络搜索,发现我不是第一个遇到这样的问题:custom-accessory-button-highlight-triggered-by-didselectrowatindexpath

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Asp.NET Core 如何使用ElasticSearch和Kibana创建仪表板

图片在我以前的文章(这里是第一[1]篇和第二篇[2])中,我展示了ElasticSearch作为电子商务中的全文搜索引擎的使用,一些高级配置的设置和使用以及products包含所有内容的索引的创建保存的产品。出于演示目的,我们使用Bog…

男女共厕,考验男生心理素质的时候到了......

1 假期里你都干了啥?▼2 有猫饼▼3 奥特曼:我不会错过!▼4 自绝式单身▼5 我信了▼6 意外的惊喜▼7 画面太美我不敢看▼你点的每个赞,我都认真当成了喜欢

基于MySQL的高可用可扩展架构探讨

随着信息量飞涨,信息的存储成为了这个时代至关重要的一项技术。如何来保证数据存储技术能够适应信息量的增长速度和我们对信息的高度依赖,成为一个非常重要的课题。本文将从数据库架构的层面,通过以开源的数据存储软件来构建分布式数据层的思…

有趣分享:国内产业图谱

IT有趣分享”Microsoft 市值又重新登上全球第一当地时间21年10月29号周五美股收盘微软市值重新登上全球第一,约为2.46万亿美元,超越苹果2.43万亿美元,成为全球市值第一公司。相当于深圳21年前三季度的gdp的总和的两倍。有趣的是专门有人做了公…

性冷淡风的麻将,获红点奖!网友:没有烟火气了

全世界只有3.14 % 的人关注了爆炸吧知识在这个消费升级的时代很多产品都被重新设计着最近,一款麻将引发大家热议有人说惊艳也有人说太冰冷,没了烟火气设计者是THE 90s LAB台湾的一个90后团队这副麻将的名字很洋气叫做,马丘Machill读起来&…

c语言md5函数 linux,Linux下C语言计算文件的md5值(长度32)

google了好久都没有找到合适的,其实我只需要一个函数,能计算文件的 md5 值就好,后来找到了 md5.h 和 md5.c 的源文件,仿照别人的封装了个函数(他那个有问题,和 md5sum 计算出来的都不一样)。废话少说,直接贴…

图片的旋转

主要运用了Matrix类,postRotate()方法和postScale()方法; Matrix:中文是矩阵的意思,主要用于图片的缩放,平移与旋转; postRotate()用于旋转,postScale()用于缩放; 具体MianAvtivity代…

让 AI 为你写代码 - 体验 Github Copilot

前几天在群里看到有大神分享 Copoilot AI 写代码,看了几个截图有点不敢相信自己的眼睛。今天赶紧自己也来体验一下 Copoilot AI 写代码到底有多神奇。申请 现在 Copoilot 还处在预览阶段,想要体验需要先申请。等待大概一晚会收到邮件提示申请试用成功&am…

这个24岁北航博士刚毕业就受聘211大学副教授,他大一就保研,学术能力太牛了.........

全世界只有3.14 % 的人关注了爆炸吧知识本文综合整理自:量子位、微言航语近日,有一个人的“朋友圈”在朋友圈火了。别误会,超模君可没在玩套娃游戏。截图给大家搬来了,快看你没看错!1996年出生,今年24岁&am…

英特尔傲腾内存linux,英特尔傲腾内存怎么样?intel傲腾内存优点和缺点你知道吗?...

英特尔傲腾内存在前一段时间正是发布,对于英特尔内存的性能不少用户一无所知,那么英特尔傲腾内存怎么样?都有哪些优点和缺点?下面装机之家小编来为大家解读下。优点1:3D XPoint随机读取性能强傲腾使用了不同于普通固态…

零代码平台中的服务编排思路

先打个广告,我们的第三场零代码实践的直播在本周五( 11 月 5 日 )晚8点准时开始,扫描下面二维码,直接预约直播,到时间微信会自动提醒。随着企业数字化转型的进程加快,零代码平台的的应用越来越广…

日本原装进口雪平锅,1台顶4台,有它谁还点外卖?

▲ 点击查看小爆我虽然热爱烹饪,但不得不说「下厨房」,也是个坑。光是锅,我就要买好几个。为了蒸包子馒头买蒸锅,为了炒菜买炒锅,偶尔想精致喝热牛奶又买了小奶锅,为了煲汤、做点卤味解解馋,买炖…

如何评价一个开源项目——价值流网络

本文由X-lab开放实验室博士生赵生宇原创出品该篇博客继续之前关于活跃度和协作影响力的介绍继续展开,希望可以在解决协作影响力无法容纳更多数据,从而可以更全面衡量开源生态的同时,也引入一种高可扩展的数学模型,可以在任意时间快…

【翻译】C#编程语言和JAVA编程语言的比较(下)

原文地址:http://www.25hoursaday.com/CsharpVsJava.html 6、集合 许多有名的编程语言都会包含一个集合框架,框架一般由各种用于保存数据的数据结构和配套的操作对象的算法构成。集合框架的优势是让开发者可以不用写数据结构和排序算法,把精力…

物理太难?这些虚拟动图,让你看懂物理

全世界只有3.14 % 的人关注了爆炸吧知识(刻度尺的使用)(测量平均速度实验)(声音的产生)(温度计的使用)(晶体和非晶体的熔化)(光的反射&#xff09…

linux http 分析工具,技术|httpstat:一个检查网站性能的 curl 统计分析工具

httpstat 是一个 Python 脚本,它以美妙妥善的方式反映了 curl 统计分析,它是一个单一脚本,兼容 Python 3 ,在用户的系统上不需要安装额外的软件(依赖)。从本质上来说它是一个 cURL 工具的封装,意味着你可以在 URL 后使…

微软 Ignite 大会 PowerBI 划重点

2021 年 11 月 2 日,微软举办 Ignite 大会,其中关于 Power BI 有哪些重点,带给你了解。摘要Power BI 和 Power Point 将原生整合。Power BI 和 Teams 将更深入整合。Power BI 云端数据集推出自动聚合。Power BI 数据模型推出混合表。Power BI…

美女晕倒怎么办?二哈:这不是一滋就醒......

1 永远不要质疑二哈▼2 睡觉也不耽误练功▼3 谁还没为数学考试受过伤呢?▼4 可能我的嘴巴安装了笑话过滤器吧▼5 我书读得少,你别吓唬我▼6 希望狗没事儿▼7 海王的微信壁纸事实证明,会计确实不赚钱▼你点的每个赞,我都认真…

linux at java,Linux-Tutorial/Java-bin.md at master · linsanityHuang/Linux-Tutorial · GitHub

Java bin 目录下的工具JVM 内存结构运行时数据区(JVM 规范)VM 栈(JVM 虚拟机栈)是线程私有的,它的生命周期和线程相同。它描述的是 Java 方法执行的内存模式。Java 堆区(Heap)是 Java 虚拟机所管理的内存中最大的一块。是被所有线程共享的一块内存区域,在…

15℃!人类首次实现高压下室温超导,研究登上Nature封面

全世界只有3.14 % 的人关注了爆炸吧知识本文转自:机器之心今天一项新纪录,轰动整个物理界。「室温超导有可能实现吗?」这个问题困惑了人们许多年。而最新一期的 Nature 杂志封面研究给出了肯定的答案,该研究制造出了第一个无需冷却…