如何通过Button获取UITableViewCell
发现一个奇怪的问题:
手机(ios7)
2015-06-17 15:11:29.323 ***[1412:60b] [btn superview] = UITableViewCellContentView
2015-06-17 15:11:29.324 ***[1412:60b] [[[btn superview]superview]class] = UITableViewCellScrollView
模拟器:ios8
2015-06-17 15:12:54.614 MyQ[7862:125756] [btn superview] = UITableViewCellContentView
2015-06-17 15:12:54.614 MyQ[7862:125756] [[[btn superview]superview]class] = EditTableViewCell
百度了一下发现:
http://www.cocoachina.com/bbs/read.php?tid=232335
提供的方法:
OffLineTableViewCell *cell = nil;
if (IsIOS7) {
UIView *view = [btn superview];
UIView *view2;
if (IsIOS8) {
view2 = view;
}else{
view2 = [view superview];
}
cell = (OffLineTableViewCell *)[view2 superview];
}else{
cell = (OffLineTableViewCell *)[btn superview];
}
果然太麻烦,弃用,换成现在这个,亲测可用。。。
这个方法真的是太靠谱了,这样还省了我要在TableViewCell中定义delegate。太赞!
还有一个支持这个方法的原因:如果删除tableviewcell中的某个数据后,再点btn可能会出现数组越界的情况。
-(void)cellBtnClicked:(id)sender event:(id)event
{
NSSet *touches = [event allTouches];
UITouch *touch = [touches anyObject];
CGPoint currentTouchPosition = [touch locationInView:favTableView];
NSIndexPath *indexPath =[favTableView indexPathForRowAtPoint:currentTouchPosition];
if (indexPath!=nil) {
ProfileViewController *profile = [[ProfileViewController alloc]init];
profile.empInfo = empSearchResultArray[indexPath.row]; //error
[self.navigationController pushViewController:profile animated:YES];
RootViewController *rootVC = (RootViewController *) self.tabBarController;
[rootVC showTabBar:NO];
}
}
如何通过Button获取UITableViewCell的更多相关文章
- IOS 通过button获取cell
在使用tableview时,有时我们需要在cell中添加button和label,以便添加某项功能,而且往往点这个button的方法中需要知道button所在cell中label内存放的值. 一般而言 ...
- iOS: 获取UITableViewCell上添加的子控件对应的cell
一.简单介绍 UITableViewCell是UITableView的核心部分,我们在开发中因为功能的扩展经常需要自定义,以便在其上面添加子控件,例如button.label等.添加后获取这些子控件的 ...
- button获取验证码60秒倒计时 直接用
__block ; __block UIButton *verifybutton = _GetverificationBtn; verifybutton.enabled = NO; dispatch_ ...
- ios uitableview button 获取cell indexpath.row
在iOS7下面已经无效,因为iOS7的层级关系发生变化 UITableViewCell->UITableViewCellScrollView->UITableViewCellContent ...
- button 获取 cell
- (void)cellBtnClicked:(id)sender event:(id)event { NSSet *touches =[event allTouches]; ...
- uitableviewcell 和 uibutton
如果cell上面只有一个button 可以设置button.tag=IndexPath.Row;得到当前点击的行数,设置button属性的时候,可以设置一个全局的button来记住当前点击的butt ...
- 利用json获取天气信息
天气预报信息获取是利用json获取的,网上有非常多资源,源码.因为上面涉及到非常多天气信息,包含湿度,出行建议等,以及加入了全部城市代码的资源包.为了练手了解json的原理.我仅获取诚笃城市的最高温, ...
- C语言API编写窗口界面和button
近期有个同学的程序须要用对话框的方式实现,但前面都是通过黑框形式完毕的,老师突然让添加一个界面,本来准备採用MFC完毕的,但后来一想,该程序核心东西是体如今它的算法上,控制台的程序并不 ...
- 微信小程序之获取当前位置经纬度以及地图显示
最近刚开始接触微信小程序,在弄懂其结构以及相关接口之后,准备着手实现一个小程序,功能包括--获取用户当前位置的经纬度,在地图上查看位置,通过地图获取不同位置的经纬度. 微信小程序的主体部分包括: 新增 ...
随机推荐
- 反射认识_04_反射调用类方法Method
包1: package ReflectionMethod; public class ReflectionMethod { String str1="str1"; public v ...
- 夺命雷公狗---node.js---22之项目的构建在node+express+mongo的博客项目7之数据的修改
在修改的时候和在PHP里面修改的一样,都是需要在列表页传个id过来才可以实现修改的,如下所示: 然后在后端接收到他传过来id的同时去读取该id的所有信息: 然后就开始写post处理数据方面的问题了,如 ...
- 夺命雷公狗—angularjs—21—解决angularjs压缩问题
我们在实际的开发中往往离不开js的代码压缩,因为这样可以减轻服务器的压力,是的的方法如下所示: <!DOCTYPE html> <html lang="en" n ...
- 夺命雷公狗---Thinkphp----1之目录介绍
ThinkPHP框架 特点: 免费开源 敏捷开发(快速开发) 面向对象 MVC思想 yii,ci之类的框架都有这些特点.是06年到现在的一个老牌框架,现在还是个很不错的框架 可以在thinkphp的官 ...
- linux_c学习笔记之curl的使用一
参考文档 使用libcurl发送PUT请求上传数据以及DELETE请求删除数据 http://blog.163.com/lixiangqiu_9202/blog/static/535750372014 ...
- Elasticsearch多索引
在Elasticsearch中,一般的查询都支持多索引.只有文档API或者别名API等不支持多索引操作,因此本篇就翻译一下多索引相关的内容. 首先,先插入几条数据: $ curl -XPOST lo ...
- Imageloarder
首先需要加载jar包,和在配置文件中配置Mainactivity.javapackage com.baidu.day13_2imageloader; import com.nostra13.unive ...
- 161111、NioSocket的用法(new IO)
今天先介绍NioSocket的基本用法,实际使用一般会采用多线程,后面会介绍多线程的处理方法. 从jdk1.4开始,java增加了新的io模式--nio(new IO),nio在底层采用了新的处理方式 ...
- Virtualbox后台管理之VBoxManage
Virtualbox是提供了后台启动的.只是不是默认的. 查看有哪些虚拟机 VBoxManage list vms 查看虚拟的详细信息 VBoxManage list vms --long 查看运行着 ...
- IBatisNet Demo (升级from 1.1)
sqlMap.config, 要修改provider的设置 <providers resource="providers.config"/> <database& ...