iOS 点击UITableViewCell上的控件获取对应的cell
来源:互联网 发布:c51单片机跑马灯程序 编辑:程序博客网 时间:2024/05/22 17:49
场景
很多情况下cell上有很多可以触发的子控件,例如点赞,提示,选择等操作,介绍几个方法,随意感受下
方法1 (获取SuperView)
@implementation UIView (GetCellFromContentviewSubview)- (UITableViewCell *)getCellFromContentviewSubview{ if ([[[self superview] superview] isKindOfClass:[UITableViewCell class]]) { return (UITableViewCell *)[[self superview] superview]; } else if ([[[[self superview] superview] superview] isKindOfClass:[UITableViewCell class]]) { return (UITableViewCell *)[[[self superview] superview] superview]; } else{ NSLog(@"Something Panic Happens"); } return nil;}@end
方法2 (另一种方式获取SuperView)
@interface UIView (SuperView)- (UIView *)findSuperViewWithClass:(Class)superViewClass;@end@implementation UIView (SuperView)- (UIView *)findSuperViewWithClass:(Class)superViewClass { UIView *superView = self.superview; UIView *foundSuperView = nil; while (nil != superView && nil == foundSuperView) { if ([superView isKindOfClass:superViewClass]) { foundSuperView = superView; } else { superView = superView.superview; } } return foundSuperView;}@end// 调用UITableViewCell *cell = [button findSuperViewWithClass:[UITableViewCell class]]
方法3 (墙裂推荐)
CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];UITableViewCell *cell = (UITableViewCell*)[self.tableView cellForRowAtIndexPath:indexPath];
这个方法看上去比上面两个舒服多了吧,简单理解下
第一段:指定的控件A,A区域里面的有个坐标(0,0)的位置,把该坐标相对于A控件的位置转换到相对于tableView的坐标
第二段:indexPathForRowAtPoint
根据转换的坐标,获取对应的indexpath
第三段:根据Indexpath获取对应的cell
坐标转换convertPoint非常通俗的讲解,可以加深理解—>传送门
阅读全文
0 0
- iOS 点击UITableViewCell上的控件获取对应的cell
- (0066)iOS开发之UITableViewCell上子控件通过superView找对应的cell的探究
- iOS 点击UITableViewCell上的按钮获取当前cell和行数
- 点击cell中某个控件,获取点击的是哪一行UITableViewCell
- ios UITableViewcell上的按钮插入cell
- 点击cell上面的控件获取cell
- 根据点击头像的手势获取自定义Cell 的属性, UITableViewCell, 头像, iOS
- iOS中如何通过点击UITableViewCell中的Button来获取当前Cell的indexPath
- 点击UItableViewCell上的cell进入另一个页面
- ios 不能点击UITableViewCell里的控件
- iOS 自定义UITableViewCell上添加UIButton按钮实现选中的是哪个按钮对应的cell,用代理实现。
- ios 如果获取cell上控件相对于屏幕的坐标
- iOS 获取当前点击的cell
- iOS 点击cell同步cell中添加的UIButton控件
- cell上自定义button点击获取cell的信息
- iOS开发-UI控件:自定义UITableViewCell 上的多个按钮点击事件处理
- 点击cell上的button 获取点击的位置
- iOS开发---通过坐标位置获取对应的UITableViewCell
- 基于TCP下MSG_PEEK的套接字接受缓冲区的排队数据量分析
- Logstash学习总结(二) INPUT应用实例2
- windows下eclipse开发hadoop的坑
- Java高级之HashMap那些事
- oracle控制语句学习
- iOS 点击UITableViewCell上的控件获取对应的cell
- C# 如何正确删除List中的item
- Activiti工作流学习(一)
- VS2010中调试DLL工程的方法
- java 反射 Reflection in Java
- 视图响应触摸事件的缩放效果
- 第2部分 静态链接---(2)编译与链接
- MYD-C437X搭建Qt开发环境
- 使用specta进行单元测试