如何通过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完毕的,但后来一想,该程序核心东西是体如今它的算法上,控制台的程序并不 ...
- 微信小程序之获取当前位置经纬度以及地图显示
最近刚开始接触微信小程序,在弄懂其结构以及相关接口之后,准备着手实现一个小程序,功能包括--获取用户当前位置的经纬度,在地图上查看位置,通过地图获取不同位置的经纬度. 微信小程序的主体部分包括: 新增 ...
随机推荐
- Oracle数据库归档模式的切换及其相关操作详解
SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> ...
- 夺命雷公狗ThinkPHP项目之----企业网站29之网站前台左侧导航的高亮显示
其实这里就是加多一段jq代码即可: 首先加一个id : 然后在下面加多一段jq代码即可: <script type="text/javascript"> $(docum ...
- [转]乐死我了,怎么样成为一个全栈程序员(Full Stack Developer),附我想专注的语言
受苏格拉底大神的启迪,我也来谈谈全栈.禅师:成为全栈工程师,这个问题等于如何成为全才,有可能吗码农:有可能,不过可能性比较低,因为达芬奇这类人毕竟是百年一遇的奇才.不过,因为我热爱这个行业,也有一定天 ...
- html里那些细节
target="_top",项目是frameset形式写的,用这个在跳转的时候从父框架跳转
- C# 时间现实问题(12小时制与24小时制)
最近在修改项目中遇到时间问题,12小时制与24小时制的问题,想再次跟各位同仁提个醒. yyyy-MM-dd HH:mm:ss------大写的HH为24小时制 yyyy-MM-dd hh:mm:ss- ...
- innodb的锁时间
观察innodb的锁时间,需要关注: mysqladmin extended-status -r -i 1 -uroot | grep "Innodb_row_lock_time" ...
- 有趣的insert死锁
昨天看到一个很有意思的死锁,拿来记录下: 环境:deadlock on 事务隔离级别: read commited 表结构: root::>show create table lingluo\G ...
- 161125、Java网络编程之统一资源定位符URL
统一资源定位符URL(Uniform Resource Locator)是www客户机访问Internet时用来标识资源的名字和地址.超文本链路由统一资源定位符URL维持.URL的格式是: <M ...
- 8.1:SportsStore:Orders and Administration
本章,作者将通过收集和验证购物明细,来完成SportsStore应用,并在Deployd服务器上存储该订单.作者也构建了一个管理应用,允许认证用户查看订单,和管理产品分类. 1.准备实例项目 2.获取 ...
- 怎么使用PHP获取用户客户端真实IP的解决方案呢?
function getIp(){if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIE ...