关于UITableView选中效果以及自定义cell上的控件响应事件

tableView默认的点击效果是:点击cell:A,出现点击效果,点另一个cell:B的时候,A的点击效果才会消失。

1、对于tableView,比较常用的效果,是点击表格行,出现效果,点击完毕,效果消失

那么就要在代码里做一些设置。代码如下:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

[tableView deselectRowAtIndexPath:indexPath animated:YES];

}

2、还有一种情况也是比较常用的,每个表格单元加上两个button,我们不想让表格行点击时出现效果,只是点击button的时候有效果,那么就要设一下cell的样式

industryCell.selectionStyle = UITableViewCellAccessoryNone;

这样,点击cell的时候整个cell就不会出现点击效果了。

3、当我们需要在cell上加button,并让button响应事件时,应该在

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

方法中获取cell上的button:

firstButton,然后给其加上响应事件

实现如下:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

NSString *cellIndentifier = @"CellIndentfier";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIndentifier];//cell是在storyBoard里创建的,所以直接获取就好

cell.selectionStyle = UITableViewCellAccessoryNone;//让整个cell点击无效果

UIButton *firstButton = (UIButton *)[cell viewWithTag:kCell_ButtonTag_1];

[firstButton addTarget:self action:@selector(gradeBtnPressed:) forControlEvents:UIControlEventTouchUpInside];

return cell;

}

最主要的应该是firstButton的响应事件

-(void)gradeBtnPressed:(id)sender

{

UITableViewCell * cell = (UITableViewCell *)[[[sender superview] superview] superview];//根据button加在cell上的层次关系,一层层获取其所在的cell(我的层次关系是:cell-》ImageView—》Label-》Button,所以要获取三次取得cell)

NSIndexPath * indexPath = [self.onlineListTableView indexPathForCell:cell];//获得cell所在的表格行row和section

UIButton *button = (UIButton *)sender;

}

4、总结

自定义cell,会有许多效果,持续学习中,学习

关于UITableView选中效果以及自定义cell上的控件响应事件,布布扣,bubuko.com

时间: 2024-10-10 07:06:20

关于UITableView选中效果以及自定义cell上的控件响应事件的相关文章

[iOS]技巧集锦:UITableView自定义Cell中的控件无法完全对齐Cell的左边界和右边界

这是个很诡异的问题,由于一些特殊需求,我的TableView的Cell的背景色是透明,其中的控件会有背景色,第一个控件和最后一个控件我都用IB自动设了约束,对齐Cell的左边界和右边界,但是自动约束很奇怪的是值都是-8(上下左右都是这个值).一开始并没在意因为显示出来是好的,但是不记得升级SDK到8.2还是8.3开始,左右就会多出空白来. 经过各种尝试,找到了解决方法.将左右的约束中item的related to margin(印象中是这么拼)取消勾选,值设为0就好了. 下班了等人,mac关了没

iOS UITableView表视图(3)自定义cell

1.自定义cell 2.多种cell 的混合使用 3.cell自适应高度 自定义cell就是创建一个UITableViewCell的子类. 把cell上的控件创建都封装在子类中,简化UIViewController中的代码 子视图控件添加到cell的contentView上 cell中的控件如何显示Model中的信息? cell中声明一个Model类型的属性,viewController中获取到Model对象后赋值给cell的Model属性,cell中重写Model的setter方法,把Mode

自定义上传控件(兼容IE8)

上传控件是 <input type="file"/> 而实际开发过程中,都会自定义一个控件,因为这个控件本身难看,而且不同浏览器效果不一样. 如IE8显示如下: 谷歌浏览器显示是这样子的: 所以通常需要自定义. 1.通常的做法就是把上传控件隐藏,即style="display:none;",再添加一个按钮,设置所需样式,然后通过js触发上传控件的事件. 这样子在谷歌.火狐等浏览器是可以的,但是在IE8中就不兼容了,好多事件都触发不到,比如我需要用到上传控

UI学习笔记---第十一天UITableView表视图高级-自定义cell

自定义cell,多类型cell混合使用,cell自适应高度 自定义cell就是创建一个UITableViewCell的子类 把cell上的空间创建都封装在子类中,简化viewController中的代码 cell中的空间如何显示Model中的信息 cell中声明一个Model类型的属性,viewController中获取到Model对象后赋值给cell的Model属性 cell中重写Model的setter方法,把Model对象中的内容重新赋值给各个控件 M和V不直接通信,C负责M和V之间进行通

iOS 获取自定义cell上按钮所对应cell的indexPath.row的方法

在UITableView或UICollectionView的自定义cell中创建一button,在点击该按钮时知道该按钮所在的cell在UITableView或UICollectionView中的行数.就是cell的 indexPath.row,下面以UITableView为例: 有两种方法: -(IBAction):(id)sender { 1. 第一种方法,这个方便一点点,不用设置tag. NSLog(@"MyRow:%d",[self.table indexPathForCell

android - 自定义(组合)控件 + 自定义控件外观

转载:http://www.cnblogs.com/bill-joy/archive/2012/04/26/2471831.html android - 自定义(组合)控件 + 自定义控件外观 Android自定义View实现很简单 继承View,重写构造函数.onDraw,(onMeasure)等函数. 如果自定义的View需要有自定义的属性,需要在values下建立attrs.xml.在其中定义你的属性. 在使用到自定义View的xml布局文件中需要加入xmlns:前缀="http://sc

自定义下拉刷新控件

一.功能效果 1.在很多app中,在信息展示页面,当我们向下拖拽时,页面会加载最新的数据,并有一个短暂的提示控件出现,有些会有加载进度条,有些会记录加载日期.条目,有些还带有加载动画.其基本实现原理都相仿,本文中将探讨其实现原理,并封装出一个简单的下拉刷新控件 2.自定义刷新工具简单的示例 二.系统提供的下拉刷新工具 1.iOS6.0以后系统提供了自己的下拉刷新的控件:UIRefreshControl .例如,refreshControl,作为UITableViewController中的一个属

使用VideoView自定义一个播放器控件

介绍 最近要使用播放器做一个简单的视频播放功能,开始学习VideoView,在横竖屏切换的时候碰到了点麻烦,不过在查阅资料后总算是解决了.在写VideoView播放视频时候定义控制的代码全写在Actvity里了,写完一看我靠代码好乱,于是就写了个自定义的播放器控件,支持指定大小,可以横竖屏切换,手动左右滑动快进快退.好了,下面开始. 效果图 效果图有点卡,我也不知道为啥..... VideoView介绍 这个是我们实现视频播放最主要的控件,详细的介绍大家百度就去看,这里介绍几个常用的方法. 用于

C#GDI+自定义绘制曲线图表控件DataChart 简单实现

C#GDI+自定义绘制曲线图表控件DataChart 这里只说明在计算刻度和曲线绘制的时候 只提供思路,只是做了下简单的计算,不喜勿喷 还望见谅,高手直接飘过吧.这个要做好,还是需要研究研究算法的,比如刻度随着控件的大小发生改变的时候计算不同的值,根据刻度范围来计算刻度以及刻度值等,这里没有研究,制作简单的绘制,让其知道自定义曲线控件的画法,对于新手来讲应该是有一些帮助的.有时间我把研究过后的算法加上做一个通用可靠一点的控件分享. 例子如下图所示 首先百度一张图片,就按照它的样子来绘制 该图片链