自定义UITableViewCell的accessoryView 判断哪个Button按下 .

news/2024/5/19 11:46:33

UITableview的开发中经常要自定义Cell右侧的AccessoryView,把他换成带图片的按钮,并在用户Tap时判断出是哪个自定义按钮被按下了。

创建自定义按钮,并设为AccessoryView

if (cell == nil) { 
    cell = [[UITableView alloc] initWithStyle:UITableViewCellStyleDefault                                  reuseIdentifier:identifier]; 
   
    UIImage *image= [ UIImage imageNamed:@"delete.png" ];
    UIButton *button = [ UIButton buttonWithType:UIButtonTypeCustom ];
    CGRect frame = CGRectMake( 0.0 , 0.0 , image.size.width , image.size.height );
    button. frame = frame;
    [button setBackgroundImage:image forState:UIControlStateNormal ];
    button. backgroundColor = [UIColor clearColor ];
    [button addTarget:self action:@selector(buttonPressedAction  forControlEvents:UIControlEventTouchUpInside]; 
    cell. accessoryView = button;
 } 

如果将Button加入到cell.contentView中,也是可以的。

cell.contentView addSubview:button];


在Tap时进行判断,得到用户Tap的Cell的IndexPath

- (void)buttonPressedAction  id)sender 
{ 
   UIButton *button = (UIButton *)sender; 
   (UITableViewCell*)cell = [button superview]; 
   int row = [myTable indexPathForCell:cell].row; 
} 
对于加到contentview里的Button, 
(UITableViewCell*)cell = [[button superview] superview];


http://www.niftyadmin.cn/n/3653612.html

相关文章

Java实现的插入法建立B+树

我所实现的B树是有关于《数据库系统实现》上的B书算法的实现。利用插入法,我构建出了一个以long型数据作为键值,以Object型数据为指针的B索引树。有关我的程序的说明:(1)元组数量的取值范围的含义是:本程序…

自定义UINavigationBar背景图片和颜色

首先准备导航栏背景图片,大小 320x44, 2x文件大小640x88,iOS5以后更改背景图片较简单 UINavigationBar *navBar self.navigationController.navigationBar; #define kSCNavBarImageTag 10 if ([navBar respondsToSelector:selector(setBackgroundImag…

动态装载问题的研究

1 问题背景我们都知道,Java平台一大亮点就在于其类装载器体系结构,这使得JVM可以在运行期从Java API,扩展路经(java.ext.path),classpath以及用户指定的位置(文件或网络)中载…

HTML5 音视频标签的方法、属性和事件

方法 方法描述addTextTrack()为音视频加入一个新的文本轨迹canPlayType()检查指定的音视频格式是否得到支持load()重新加载音视频标签play()播放音视频pause()暂停播放当前的音视频 属性 属性描述audioTracks返回可用的音轨列表(MultipleTrackList对象&#xff09…

One-Jar之旅

1 问题的提出作为一个经常使用Java编程的程序员,当我在发布我的Java程序的时候,我习惯于这样组织所有的程序和资源:主程序放到JVM系统变量“user.dir”所指向的目录中(假设是MyAppDir目录),程序…

JasperReport+iReport高级报表设计实战

JasperReportiReport高级报表设计实战序言一直以来,报表都是很多项目中一个重要的、不可获取的组成部分。然而其复杂性和专业性又使得程序员不能够也没时间自己设计属于目前手头正在构建的系统的报表模块;即便设计来了又可能由于通用性等原因不能够应用到…

获得OpenCms的数据库链接池

看到有网友问“是否可以修改OpenCms的表结构,修改之后如何访问”,答案是“可以”,OpenCms有自己的数据库链接池,在/WEB-INF/config/opencms.properties文件中配置,默认数据库链接池的名称是“default”,可以…