IOS 通过button获取cell
在使用tableview时,有时我们需要在cell中添加button和label,以便添加某项功能,而且往往点这个button的方法中需要知道button所在cell中label内存放的值。
一般而言我们可以用tag来做,但当table有很多行的时候,设置tag就没有那么方便了,这里我介绍另外一种方法。
我们知道IOS里每一个视图都有父视图,那我们可不可以用这个方法获取cell呢?
经过一番查找测试发现superview方法可以找到button所在cell
给button写上这样的方法
-(void)btn_Onclick:(id)sender
{
UIButton *btn = (UIButton *)sender; NSLog(@" [btn superview] = %@ ",[[btn superview]class]);
NSLog(@" [[[btn superview]superview]class] = %@",[[[btn superview]superview]class]);
}
输出结果如下
-- ::42.203 superview[:60b] [btn superview] = UITableViewCellScrollView
-- ::42.646 superview[:60b] [[[btn superview]superview]class] = UITableViewCell
说明这样没问题。但经过我的测试发现,对于自己写的继承自uitableviewcell的类,(这里我是SongTableViewCell)需要稍作修改。
NSLog(@" [btn superview] = %@ ",[[btn superview]class]);
NSLog(@" [[[btn superview]superview]class] = %@",[[[btn superview]superview]class]);
NSLog(@" [[[btn superview]superview]superview]class] = %@",[[[[btn superview]superview]superview] class]);
输出结果如下:
-- ::50.036 Music_Player[:60b] [btn superview] = UITableViewCellContentView
-- ::50.036 Music_Player[:60b] [[[btn superview]superview]class] = UITableViewCellScrollView
-- ::50.036 Music_Player[:60b] [[[btn superview]superview]superview]class] = SongTableViewCell
PS:对于viewwithtag方法多说一句,这个方法不能寻找tag为0的控件,就算自己button的tag为0也无法找到,猜测是与系统默认的空间重复。
IOS 通过button获取cell的更多相关文章
- ios uitableview button 获取cell indexpath.row
在iOS7下面已经无效,因为iOS7的层级关系发生变化 UITableViewCell->UITableViewCellScrollView->UITableViewCellContent ...
- button 获取 cell
- (void)cellBtnClicked:(id)sender event:(id)event { NSSet *touches =[event allTouches]; ...
- iOS UITableView中关于cell里的按钮被点击时如何确定是哪一个section
在section=10:row=1:的UITableView中,每一个cell都带有一个按钮,例如如下的图片一样每一个cell中都有一个“进入店铺的按钮”,但是如果我点击相应的cell要进入对应的店铺 ...
- iOS根据Url 获取图片尺寸
iOS根据Url 获取图片尺寸 // 根据图片url获取图片尺寸 +(CGSize)getImageSizeWithURL:(id)imageURL { NSURL* URL = nil; if([i ...
- iOS 7.0获取iphone UDID 【转】
iOS 7.0 iOS 7中苹果再一次无情的封杀mac地址,使用之前的方法获取到的mac地址全部都变成了02:00:00:00:00:00.有问题总的解决啊,于是四处查资料,终于有了思路是否可以使用K ...
- 李洪强iOS开发-网络新闻获取数据思路回顾
李洪强iOS开发-网络新闻获取数据思路回顾 01 创建一个继承自AFHTTPSessionManager的工具类:LHQNetworkTool 用来发送网络请求获取数据 1.1 定义类方法返回单例对 ...
- iOS中UITableView的cell点击事件不触发didSelectRowAtIndexPath(汇总)
iOS中UITableView的cell点击事件不触发didSelectRowAtIndexPath 首先分析有几种原因,以及相应的解决方法 1.UITableViewCell的userInterac ...
- 通过控件获取cell
#pragma mark - 通过控件获取cell -(UITableViewCell*)GetCellFromTableView:(UITableView*)tableView Sender:(id ...
- 一行代码巧妙实现iOS返回button
一行代码巧妙实现iOS返回button: self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithImage:[ ...
随机推荐
- Xamarin devexpress datagrid 样式
DevExpress的提供光与暗的内置,可以应用到主题GridControl改变其外观. 主题 iOS版 Android版 光(默认适用于iOS) 黑暗(默认为Android) 应用预定义的主题 ...
- 走FILTER效率高的2种情况
FILTER的适用范围: 1. 主表返回的记录数较少 2.子查询返回记录数较小 下面做实验证明: select department_name from hr.dept_1 dept where de ...
- Linux系统编程(29)——线程间同步(续篇)
线程间的同步还有这样一种情况:线程A需要等某个条件成立才能继续往下执行,现在这个条件不成立,线程A就阻塞等待,而线程B在执行过程中使这个条件成立了,就唤醒线程A继续执行.在pthread库中通过条件变 ...
- 2015第24周五Spring的AOP
AOP(面向方面编程:Aspect Oriented Programing)和IoC一样是Spring容器的内核,声明式事务的功能在此基础上开花结果.但AOP的应用场合是受限的,它一般只适合于那些具有 ...
- JQ无法修改input的type属性的替代解决方法
需要实现的效果:一个输入框,当输入框未获得焦点的时候,显示为 “请输入密码”:当输入内容并失去焦点的时候,输入内容显示为”*****”,如果没有输入仍然显示“请输入密码”: 方法一:使用text,隐藏 ...
- Palindrome Pairs 解答
Question Given a list of unique words, find all pairs of distinct indices (i, j) in the given list, ...
- 回调函数的意义以及python实现
因工作需要,最近在学习使用python来解析各种文件,包括xmind,xml,excel,csv等等. 在学习python解析XML的时候看到这样一段话: 3.ElementTree(元素树) Ele ...
- [Qt] qtcreator 中打开console
(1) qtcreator-->左侧Projects-->Run-->中间的checkbox (Run in terminal)打上勾 (2) 在项目的.pro文件中加上 " ...
- 限定checkbox最多选中数量
一.概述: checkbox是我们在编写网页的时候经常使用的多选框,但是有些时候我们会限定最多选中的数量,如何限定呢? 下面这例子限定了最多选中两个元素,并且将这两个选中的源依次显示在一个文本框里: ...
- nexus5 root教程
转载自: http://www.inexus.co/article-1280-1.html http://www.pc6.com/edu/71016.html https://download.cha ...