IOS开发之TableView替换默认的checkmark为自定义图像
直接上代码:
On cellForRowAtIndexPath:
UIButton*button =[UIButton buttonWithType:UIButtonTypeCustom];CGRect frame =CGRectMake(0.0,0.0, image.size.width, image.size.height);
button.frame = frame;[button setBackgroundImage:image forState:UIControlStateNormal];[button addTarget:self action:@selector(checkButtonTapped:event:) forControlEvents:UIControlEventTouchUpInside];
button.backgroundColor =[UIColor clearColor];
cell.accessoryView = button;
checkButtonTapped:event: Method:
-(void)checkButtonTapped:(id)sender event:(id)event
{NSSet*touches =[event allTouches];UITouch*touch =[touches anyObject];CGPoint currentTouchPosition =[touch locationInView:self.tableView];NSIndexPath*indexPath =[self.tableView indexPathForRowAtPoint: currentTouchPosition];if(indexPath != nil){[self tableView: self.tableView accessoryButtonTappedForRowWithIndexPath: indexPath];}}
accessoryButtonTappedForRowWithIndexPath: Method
-(void)tableView:(UITableView*)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath*)indexPath
{NSMutableDictionary*item =[dataArray objectAtIndex:indexPath.row];
BOOL checked =[[item objectForKey:@"checked"] boolValue];[item setObject:[NSNumber numberWithBool:!checked] forKey:@"checked"];UITableViewCell*cell =[item objectForKey:@"cell"];UIButton*button =(UIButton*)cell.accessoryView;UIImage*newImage =(checked)?[UIImage imageNamed:@"unchecked.png"]:[UIImage imageNamed:@"checked.png"];[button setBackgroundImage:newImage forState:UIControlStateNormal];}
IOS开发之TableView替换默认的checkmark为自定义图像的更多相关文章
- IOS开发之tableview只选中一行
场景:一个弹出层,包含一个Tableview,每一行为一个选择条件,且只能选择一个.选中后文体有颜色变化,后面还会有对勾.选择另一个后,前一个恢复成普通状态. 示例代码: -(void)tableVi ...
- iOS开发之 Xcode6 添加xib文件,去掉storyboard的hello world应用
iOS开发之 Xcode6.1创建仅xib文件,无storyboard的hello world应用 由于Xcode6之后,默认创建storyboard而非xib文件,而作为初学,了解xib的加载原理 ...
- iOS开发之loadView、viewDidLoad及viewDidUnload的关系
iOS开发之loadView.viewDidLoad及viewDidUnload的关系 iOS开发之loadView.viewDidLoad及viewDidUnload的关系 标题中所说的3个方 ...
- iOS开发之info.pist文件和.pch文件
iOS开发之info.pist文件和.pch文件 如果你是iOS开发初学者,不用过多的关注项目中各个文件的作用.因为iOS开发的学习路线起点不在这里,这些文件只会给你学习带来困扰. 打开一个项目,我们 ...
- 李洪强iOS开发之Block和协议
李洪强iOS开发之Block和协议 OC语言BLOCK和协议 一.BOLCK (一)简介 BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,BLOCK可以在任 ...
- 李洪强IOS开发之iOS好项目收集
李洪强IOS开发之iOS好项目收集 在这里收集一些最近出现的比较实用好玩的框架或者项目,会不断更新 项目 简述 日期 SCTableViewCell 类似与QQ侧滑删除Cell的Demo 201501 ...
- iOS 开发之 GCD 不同场景使用
header{font-size:1em;padding-top:1.5em;padding-bottom:1.5em} .markdown-body{overflow:hidden} .markdo ...
- iOS 开发之 GCD 基础
header{font-size:1em;padding-top:1.5em;padding-bottom:1.5em} .markdown-body{overflow:hidden} .markdo ...
- IOS开发之ZBarReaderView的使用
IOS开发之ZBarReaderView的使用 HOMEABOUTGUESTBOOKCATEGORIESTAGSLINKSSUBSCRIBE 当开发IOS程序中需要用到二维码识别功能的时候,zbar这 ...
随机推荐
- BT5升级MSF至Git更新的方法
由于Kali在虚拟机的运行效率实在让人不敢恭维,于是决心将BT5中的MSF进行升级,升级的主要目的是,BT5R3内置的MSF是用SVN进行更新, 但是新版本的MSF已经停止通过SVN更新,改用Git, ...
- 为什么Nagios会那么吵?你又能做些什么呢?(1)
如果你受困于 Nagios 的告警洪潮中不能自拔,那么这两篇连载博客就是为你而生的.让我们来详细的阐述下这个问题! 运维人员都有着独立的监控工具,因此会经常受到 Nagios 告警吵闹的影响.很多运维 ...
- code forces Watermelon
/* * Watermelon.cpp * * Created on: 2013-10-8 * Author: wangzhu */ /** * 若n是偶数,且大于2,则输出YES, * 否则输出NO ...
- [jobdu]用两个栈实现队列
思路比较简单.就是当要pop的时候,如果s2为空,才把s1的转过来.总之就是区分一下此时s2为空和非空的情况. http://ac.jobdu.com/problem.php?pid=1512 #in ...
- 综合经验:IO读写错误必然导致程序崩溃
仿佛是忽然间产生的问题,每次程序退出时候,必然崩溃,花了整整一天才找到原因,就是对数据库的IO读写错误.主要是因为析构函数调用了Disconnect函数,内容如下: void SFTPTool::Di ...
- ruby 模块 的引入
module My NA="China" def My.set_name(name) @name=name end def My.get_name return @name end ...
- Android进阶篇-内存管理
很多时候我们需要考虑Android平台上的内存管理问题,Dalvik VM给每个进程都分配了一定量的可用堆内存,当我们处理一些耗费资源的操作时可能会产生OOM错误(OutOfMemoryError)这 ...
- C# SerializableDictionary序列化/反序列化
说明:Dictionary对象本身不支持序列化和反序列化,需要定义一个继承自Dictionary, IXmlSerializable类的自定义类来实现该功能.感觉完全可以把这样的类封装到C#库中,很具 ...
- poj 1184 广搜进阶题
起初的想法果然就是一个6000000的状态的表示. 但是后面觉得还是太过于幼稚了. 可以看看网上的解释,其实就是先转换位置,然后再改变数字的大小. #include<iostream> # ...
- ASP.NET操作Word的IIS权限配置
ASP.NET账号在默认情况下是没有权限操作Microsoft Office对象的,如果不进行权限的配置,代码会抛出类似以下的异常: 检索 COM 类工厂中 CLSID 为 {00024500-000 ...