2 o 1001 o O_1001_O 于 2013.03.19 10:22 提问

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

在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];
}

多谢。

1个回答

zhanglei5415
zhanglei5415   Rxr 2013.03.20 08:42
已采纳

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

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

[edit release];
[delete release];

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!