开发者社区> 问答> 正文

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

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

展开
收起
爵霸 2016-03-24 10:29:55 2133 0
1 条回答
写回答
取消 提交回答
  • 按说应该是可以进入相应的方法中的.没有看出什么不妥
    你在-(void)edit 的语句体中设置一下断点,来跟踪一下看在点击"编辑"按钮时能不能进来.

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

    2019-07-17 19:12:08
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
fibjs 模块重构从回调到协程--陈垒 立即下载
建立联系方法之一 立即下载
低代码开发师(初级)实战教程 立即下载

相关实验场景

更多