UItableView Cell上的UI按钮无法单击

时间:2011-08-09 13:41:25

标签: iphone uitableview button uibutton click

我在一个单元格中添加了uibutton。我希望按下此按钮并与用户进行交互。我在单元实现类中添加了这行代码。

readMore = [[UIButton alloc]initWithFrame: CGRectMake(180, 50, 67, 25)];
[readMore addTarget:self action:@selector(readMoreClic:) forControlEvents:UIControlEventTouchUpInside];
[readMore setImage:[UIImage imageNamed:@"readmore.png"] forState:UIControlStateNormal];      
[self addSubview:readMore];

问题是没有点击它(选择单元格后它总是处于高亮状态)。我试过了: -

1- [self setSelectionStyle:UITableViewCellSelectionStyleNone];
2- cell.userInteractionEnabled = NO

但我仍然选择了单元格,并以蓝色突出显示并且未单击按钮。即使我选择了

[self setSelectionStyle:UITableViewCellSelectionStyleGray]
有些人帮助PLZ THX

[注意我在同一个单元格中有一个textView,它允许交互(选择和复制)] [我在iOS 4.3中使用xcode 4]

3 个答案:

答案 0 :(得分:1)

尝试不同的控制事件?:

[readMore addTarget:self action:@selector(readMoreClic:) forControlEvents:UIControlEventTouchDown];

答案 1 :(得分:0)

好吧,我不太明白为什么你的按钮没有响应,因为我遇到了类似的问题,但我使用了不同的解决方案。这就是我所做的:

CGRect reuseableRect = CGRectMake(20, 290, 260, 37);

self.actionButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
self.actionButton.frame = reuseableRect;

[self.actionButton setTitle:@"Initialize" forState:UIControlStateNormal];
[self.actionButton addTarget:nil action:@selector(performAction) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:self.actionButton];

实际上,我这样做了:

self.actionButton = [[UIButton alloc] initWithFrame:reuseableRect];

但它不起作用。所以我把它改成了

self.actionButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

resueableRect只是我在视图初始化时使用过的CGRect。

对于之前解决方案的三行,第一行:

[self setSelectionStyle:UITableViewCellSelectionStyleNone];

它正在对tableView及其单元格进行一些配置,因此它不会影响按钮

第二个:

cell.userInteractionEnabled = NO;

它也没有配置按钮,更重要的是,由于单元格是按钮的超级视图,因此该行可以防止任何用户交互。

第三个也没有对按钮做任何事情,所以如果您考虑配置按钮,我建议您删除所有按钮

答案 2 :(得分:-1)

您无需对选择样式或userInteractionEnabled执行任何操作。确保readMoreClic:看起来像:

-(void)readMoreClic:(id)sender
{
}