问题描述
- 动态创建的按钮无法调用响应
-
在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