动态创建的按钮无法调用响应 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

爵霸 2016-03-24 10:29:55 1523

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)
  • 爵霸
    2019-07-17 19:12:08

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

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

    0 0
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

最新问题