为了美化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

UITableView定制accessoryView出现的连带问题相关推荐

  1. 可任意自定义的UITableViewCell(转)

    转自:http://www.cnblogs.com/lovecode/archive/2012/01/07/2315630.html UITableView的强大更多程度上来自于可以任意自定义UITa ...

  2. ⑪(面试篇 2/3)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)

    iOS面试题 一共分为笔试题和面试题两部分 笔试题 一共分为10个 总共613题 面试题 一共400题 笔试题 一个10个系列 分别为 ①(语法篇) 共147题 已更新 ②(常识篇) 共72题 已更新 ...

  3. UITableView学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> http://www.cnblogs.com/smileEvday/archive/2012/06/28/tableView. ...

  4. UITableView 学习笔记

    http://www.cnblogs.com/smileEvday/archive/2012/06/28/tableView.html UITableView学习笔记 作者:一片枫叶 看TableVi ...

  5. UITableView 详解 教程

    看TableView的资料其实已经蛮久了,一直想写点儿东西,却总是因为各种原因拖延,今天晚上有时间静下心来记录一些最近学习的TableView的知识.下面进入正题,UITableView堪称UIKit ...

  6. IOS UITableView详解一数据展示 页面简单实现

    为什么80%的码农都做不了架构师?>>>    一 UITableView简介 UITableView用于表格数据展示,是使用频率最高的控件.UITableView继承自UIScro ...

  7. UITableView

    表格视图 目录 表格视图的功能和介绍 表格视图的基本使用 显示分组数据 单元格的构成和基本定制 常用事件处理 添加头部视图和尾部视图 设置段头和段尾 表格视图的编辑(难点) 表格视图的索引 表格的分割 ...

  8. iOS开发系列--UITableView全面解析

    iOS开发系列--UITableView全面解析 2014-08-23 23:20 by KenshinCui, 2202 阅读, 18 评论, 收藏,  编辑 --UIKit之UITableView ...

  9. 从零开始学ios开发(十二):Table Views(中)UITableViewCell定制

    我们继续学习Table View的内容,这次主要是针对UITableViewCell,在前一篇的例子中我们已经使用过UITableViewCell,一个默认的UITableViewCell包含imag ...

最新文章

  1. CDN视频存储解决方案
  2. Linux top小结
  3. 面向机器学习的特征工程翻译版
  4. Altium designer中设置PCB网络闭合(不闭合)
  5. java创建树结构_Java学习之XML-017
  6. 阿里3篇技术论文入选国际顶级会议FAST2020,全球第一!
  7. OpenVINO Inference Engine之custom Layer自定义算法(VPU版本)
  8. JSON(1)--- 语法
  9. STUN和TURN协议解析
  10. Gallery3D笔记
  11. 希腊数字matlab,latex 希腊数字
  12. 对潇潇暮雨洒江天,一番洗清秋。渐霜风凄紧,关河冷落,残照当楼。是处红衰翠减,苒苒物华休。唯有长江水,无语东流。不忍登高临远,望故乡渺邈,归思难收。叹年来踪迹,何事苦淹留?想佳人,妆楼颙望,误几回、天际
  13. google浏览器更新后,出现并行配置不正确问题
  14. Magento后台添加商品(Simple Product和Configurable Product)
  15. 利用Java求解“鸡兔同笼问题”:鸡和兔在一个笼子里,共有腿100条,头40个,问鸡兔各有几只?
  16. Android中action的定义
  17. 一个啥都不懂但还不知天高地厚的我
  18. java双人游戏_Java 简易双人坦克游戏实现
  19. 青海黑枸杞形象塑造之路看地理标志产品柴达木枸杞品牌形象推广思路
  20. Vue项目打包部署(history模式)

热门文章

  1. type_traits应用
  2. 【ASP】简单Url编码和Url解码实例
  3. STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结
  4. 事物与数据库底层数据
  5. 获取ClassLoader的途径
  6. 后端技术:MyBatis 批量插入的 3 种写法
  7. 数据库:计算地球上两个坐标点之间里程
  8. 后端:Java 8 中的 Map 实用操作,学习下!
  9. 计算机网络:网络设备知识笔记
  10. SFTP是什么?与FTP之间有什么区别