一个tableView里面有两个section,每个section里面有3个cell,每个cell里面有一个按钮

泡泡脸 2015-03-30 05:07:00
现在一个tableView里面有两个section,每个section里面有3个cell,每个cell里面有一个按钮叫“完成”
当我点击其中一个“完成”时,在这个按钮所在的cell左上角加一个UIImageView的小图标
请问,怎么实现呢?
...全文
340 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
泡泡脸 2015-03-31
  • 打赏
  • 举报
回复
引用 1 楼 zhanglei5415 的回复:
在设计cell时,可以事先预留出小图标的位置,只是在默认初始时的状态不可见。你还需要再维护一个状态,根据这个状态来判断这个小图标是否可以显示。而这个状态是数据模型,需要依赖于你的数据源。所以如果当前的数据源不包含这个状态属性(如:isFinished),你可以通过objc_setAssociatedObject 方法动态为数据源对象添加扩展属性。但最好是在原有数据源对象上扩展。 逻辑是这样的: 将“完成”按钮的处理事件,不要在自定义cell内部实现,通过代理或block,让“完成”按钮的处理事件委托给tableview 所在的控制器。在这个事件处理中完成对数据源的修改或“小图标”状态的显示修改。 数据源的修改:需要将数据源实体中的isFinished标志字段设置为YES, 并将当前数据源list 中对应的实体替换。 “小图标”状态显示的修改: 通过indexPath 得到当前cell. 公开"小图标"属性。 如cell.icon.hidden = NO;
真是豁然开朗啊!!
ReyZhang 2015-03-30
  • 打赏
  • 举报
回复
在设计cell时,可以事先预留出小图标的位置,只是在默认初始时的状态不可见。你还需要再维护一个状态,根据这个状态来判断这个小图标是否可以显示。而这个状态是数据模型,需要依赖于你的数据源。所以如果当前的数据源不包含这个状态属性(如:isFinished),你可以通过objc_setAssociatedObject 方法动态为数据源对象添加扩展属性。但最好是在原有数据源对象上扩展。 逻辑是这样的: 将“完成”按钮的处理事件,不要在自定义cell内部实现,通过代理或block,让“完成”按钮的处理事件委托给tableview 所在的控制器。在这个事件处理中完成对数据源的修改或“小图标”状态的显示修改。 数据源的修改:需要将数据源实体中的isFinished标志字段设置为YES, 并将当前数据源list 中对应的实体替换。 “小图标”状态显示的修改: 通过indexPath 得到当前cell. 公开"小图标"属性。 如cell.icon.hidden = NO;

1,420

社区成员

发帖
与我相关
我的任务
社区描述
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于MAC OS和iOS平台,用于搭建基于苹果平台的应用程序。
swift 技术论坛(原bbs)
社区管理员
  • Swift
  • 网罗开发
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧