添加按钮到uitableviewcell没有响应

时间:2011-08-07 08:07:28

标签: iphone uitableview uibutton

我已经通过界面构建​​器创建了一个带有标签和按钮的自定义tableviewcell。在.h和.m文件中,我为已连接的按钮创建了插座和操作。 此单元格被添加到由uiviewcontroller类控制的tableview中。然而我的问题是,当我点击按钮时,按钮没有被激活,但是我被推到属于单元格的详细视图。好像按钮位于单元格后面。

对于我已经忘记或应该改变的任何建议?

我已经以编程方式创建了一个按钮,并将其作为子视图添加到单元格中,这样可以正常工作,但这会给我带来另一个问题,因为每次加载单元格时都会添加按钮。

 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setFrame:CGRectMake(200.0f, 5.0f, 100.0f, 40.0f)];


//Set image
UIImage *img = [UIImage imageNamed:@"myPackage.png"];
[button setImage:img forState:UIControlStateNormal];
[img release];


[button addTarget:self action:@selector(myPackagePushed:) forControlEvents:UIControlEventTouchUpInside];

[cell addSubview:button];

我真的想使用界面构建器方法 - 任何建议吗?

此致

3 个答案:

答案 0 :(得分:3)

[cell.contentView addSubview:button];

UIImage * img = [UIImage imageNamed:@“myPackage.png”];这里你没有分配内存,所以不需要

[img release];因为有可能崩溃

答案 1 :(得分:1)

按钮应该触发您在IB中设置的IBAction方法。您是否通过插入NSLog或通过设置断点来检查是否已输入方法?

按钮是否设置为最初在IB中激活?

IB结构的关键在于IBOutlet在从xib加载单元格时获得其值。然后,IBOutlet将成为最后加载tableview的单元格中的按钮。

当您以编程方式添加按钮时,在向该单元格再次添加按钮之前,可能需要使用先前添加的按钮来删除SuperSuperview。

答案 2 :(得分:1)

就我而言,问题是按钮是背景视图的子视图。

分配给背景视图的按钮显然无法响应触摸。