ios-动态创建的按钮无法调用响应

问题描述

动态创建的按钮无法调用响应

在UITableView中动态创建了两个按钮,编辑和删除。

点击cell之后按钮显示成功,但是点击按钮没有响应的动作发生。

代码:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *CellIdentifier=@"Cell";

    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if(cell==nil){
        cell=[[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]autorelease];
    }

    NSString *cellValue=[firstName objectAtIndex:indexPath.row];
    cell.textLabel.text=cellValue;
    edit=[[UIButton alloc]init];
    [edit setTitle:@"Edit" forState:UIControlStateNormal];
    [edit setFrame:CGRectMake(100, 100, 100, 20)];
    [edit setTag:1];
    [edit addTarget:self action:@selector(edit) forControlEvents:UIControlEventTouchUpInside];

    delete=[[UIButton alloc]init];
    [delete setTitle:@"Delete" forState:UIControlStateNormal];
    [delete setFrame:CGRectMake(150, 100, 100, 20)];
    [delete setTag:2];
    [delete addTarget:self action:@selector(deleteBtn) forControlEvents:UIControlEventTouchUpInside];
    [cell.contentView addSubview:delete];
    [cell.contentView addSubview:edit];
    return cell;
}

我的删除编辑功能非常简单:

-(void)edit{

NSLog("%@",selectedValue);
}

-(void)deleteBtn{

NSLog("%@",selectedValue);
}

下面的代码是selectedValue:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
selectedValue=[firstName objectAtInder:indexPath.row];
}

多谢。

解决方案

按说应该是可以进入相应的方法中的.没有看出什么不妥
你在-(void)edit 的语句体中设置一下断点,来跟踪一下看在点击"编辑"按钮时能不能进来.

在你的代码中有需要释放的对象没有释放,需要加上释放语句.其中的edit,delete 这两个button都是使用
alloc, init 这样的方式创建,在添加cell后需要手动release

[edit release];
[delete release];

时间: 2024-08-31 12:22:35

ios-动态创建的按钮无法调用响应的相关文章

MFC中动态创建控件以及事件响应实现方法_C 语言

本文实例讲述了MFC中动态创建控件以及事件响应实现方法,分享给大家供大家参考.具体实现方法如下: 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示. 静态控件不需要调用Create()

button-给动态创建的按钮之间添加空间

问题描述 给动态创建的按钮之间添加空间 在程序中我动态的创建了很多按钮,但是如何在两个按钮之间添加空间呢?我用这样的代码但是没有实现,大家能帮助我吗?谢谢! private LinearLayout LLDynamic; private RelativeLayout.LayoutParams ParaOne;ParaOne = new RelativeLayout.LayoutParams(280 30);Button button1= new Button(Twindo_fromEditGro

view 生成后,动态创建的按钮无法显示

问题描述 在view的OnInitialUpdate中用create动态创建的按钮,在view显示后就能出现,但是在view生成后再用create创建的按钮却无法显示了,用了ShowWindow也看不到,怎么显示?请大家帮帮忙! 解决方案 解决方案二:没人看?没人知道?自己顶解决方案三:补充一下,刚才试了一下,我创建的按钮的函数是createbutton,是在线程的回调函数中创建的,回调函数是一个全局函数,并且有一个指向view的参数,但是我发现在view的内部函数中是可以创建按钮的,但是在线程

动态创建控件支持事件响应并可保存与读取

VC++6.0中创建动态控件是比较偏离基础的知识,也有一定的难度.它的完整功能是要动态创建控件后再动态响应控件中的事件,两者全部做到才算完整. 这里我将展示一个完整的动态控件示例,它可以动态创建控件,然后再动态响应控件事件,并可以保存控件信息至ini配置文件,然后再根据ini文件读取出控件信息来动态创建控件.相信它能够解决你在动态控件中所遇到的许多问题. 当然,动态控件的方法有许多种,我展示的只是给我认为较好的. 这里以VC++6.0创建对话框工程为例,添加菜单,分别添加子项按钮,文本框,标签.

让动态创建的ActiveX控件响应Windows消息

当我们通过 CWnd::CreateControl() 动态创建 ActiveX   控件时, Windows 消息并不会被发送给我 们的由   CWnd 派生得控件类.例如,即使我们为 WM_KILLFOCUS   消息创建了句柄,这个句柄   也是不会被调用的.(不信你试试 :)) 引起这个问题的原因时, CWnd::CreateControl() 并不会使我控件的   HWND 子类化. 知道了原因,要解决问题就不难了.我们只要在控件创建之后使它子类化就行了.通过一下步 骤可以实现: 1.

MFC里让动态创建的ActiveX控件响应Windows消息

碰到的问题:      我在MFC程序中使用一个由CWnd::CreateControl 创建的WebBrowser控件,这个控件是有CWnd继承下来的,今天我有一个需求是要在当中响应Windows消息去重绘,但是我发现这个控件窗口居然不能够接受父窗口的Windows窗口消息,很是无语. 问题产生的原因:      导致控件无法接收Windows窗口消息的原因是因为CreateControl 没有子类化子窗口,自然是无法响应了.关于子类化的相关资料请查看参考资料,或者自行搜索. 解决的办法:  

MFC 对话框中动态创建N级菜单以及响应事件

创建一个基于对话框的工程,工程名为CreateMenu 为该对话框增加一个文件菜单项和测试菜单项,如下图所示   测试菜单项至少要有一个子菜单项 在对话框属性中关联该菜单 在resource.h中增加一个ID_TESTMENU宏 #define ID_TESTMENU          5000   在对话框中添加一个Button按钮,建立消息映射,编辑代码如下 void CCreateMenuDlg::OnButton1() { // TODO: Add your control notifi

C++ 动态创建按钮及 按钮的消息响应_C 语言

动态创建的按钮 都会在消息 OnCommand 中得到处理,无论是什么消息,都会处理的 1\创建按钮 复制代码 代码如下: CButton* btn = new CButton();     btn->Create(_T("方法"), WS_CHILD | WS_VISIBLE, CRect(0,0,50,50), this, 2); 注意创建的最后一个参数 这个数据代表的就是创建的那个控件的ID值,相当于 这个数据是代表控件的唯一的重要标志 BOOL CMyCusCrl::On

javascript元素动态创建实现方法

  本文实例讲述了javascript元素动态创建实现方法.分享给大家供大家参考.具体分析如下: document.write只能在页面加载过程中才能动态创建 可以调用document的createElement方法来创建具有指定标签的DOM对象,然后通过调用元素的appendChild方法将 新创建元素添加到相应的元素下 举例如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <html xmlns="http://www.w