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:[ ...
随机推荐
- Kcptun 是一个非常简单和快速的,基于KCP 协议的UDP 隧道,它可以将TCP 流转换为KCP+UDP 流
本博客曾经发布了通过 Finalspeed 加速 Shadowsocks 的教程,大家普遍反映能达到一个非常不错的速度.Finalspeed 虽好,就是内存占用稍高,不适合服务器内存本来就小的用户:而 ...
- win8 开启administrator 管理员帐户
进入命令提示符以后,输入命令:[net user administrator /active:yes]然后注销,就可以使用administrator登录.. 如果想要取消administrator激活 ...
- 关于mysql的自增
http://my.oschina.net/zimingforever/blog/136599 http://flandycheng.blog.51cto.com/855176/280224 http ...
- HDU_2057——64位无符号16进制数的运算
Problem Description There must be many A + B problems in our HDOJ , now a new one is coming. Give yo ...
- UVa 116: Undirectional TSP
简单动态规划题.用取模实现第一行与最后一行连续,注意取字典序即可. 我的解题代码如下: #include <iostream> #include <cstdio> #inclu ...
- Highcharts 时间序列,可缩放的图表
配置 图表 配置可缩放图表. chart.zoomType 指定了用户可以拖放的尺寸,用户可以通过拖动鼠标来放大,可能值是x,y或xy: var chart = { zoomType: 'x' }; ...
- (转)20 个大大节省你时间的 HTML5 开发工具
Rendera 如果你希望有个环境可以测试.浏览和体验各种不同的 CSS/HTML 和 JavaScript 代码,Rendera 为你提供了实时的运行结果.类似 RunJS. Patternizer ...
- Struts 2零配置
从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该 ...
- 解决html5新标签【placeholder】低版本浏览器下不兼容问题
placeholder属性是HTML5 中为input添加的.在input上提供一个占位符,文字形式展示输入字段预期值的提示信息(hint),该字段会在输入为空时显示. 实例:1 <input ...
- Jsp中response对象的所有属性
所属接口:javax.servlet.http.HttpServletResponse,其父接口是ServletResponse,而且ServletResponse也现在只有唯一一个HttpServl ...