UItableView Cell上的UIbutton不可点击

Posted

技术标签:

【中文标题】UItableView Cell上的UIbutton不可点击【英文标题】:UIbutton on UItableView Cell not clickable 【发布时间】:2011-08-09 13:41:24 【问题描述】:

我在 uitable 视图的单元格中添加了 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]

请有人帮忙 谢谢

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

【问题讨论】:

这不会解决您的问题,但您应该将按钮添加到 contentView 而不是直接添加到单元格。 已经试过了。同样的问题:( 【参考方案1】:

尝试不同的控制事件?:

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

【讨论】:

当我点击它时按钮没有变暗。问题不在事件处理程序上。我只想看到按钮被点击,不管采取什么行动。 啊,如果我现在对您的理解正确,您的按钮工作没有问题(即调用 readMoreClic)。如果父单元格突出显示,您根本看不到按钮的视觉变化?【参考方案2】:

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

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;

它也没有配置按钮,更重要的是,由于单元格是按钮的超级视图,这一行会阻止任何用户交互。

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

【讨论】:

我知道 (UITableViewCellSelectionStyleNone) 和 (UITableViewCellSelectionStyleNone) 但我在另一篇文章中读到它解决了问题。除了我希望用户单击它时不选择单元格仅按钮(我不希望选择单元格时为蓝色)【参考方案3】:

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

-(void)readMoreClic:(id)sender


【讨论】:

当我点击它时按钮没有变暗。问题不在事件处理程序上。我只想看到按钮被点击,不管采取什么行动。

以上是关于UItableView Cell上的UIbutton不可点击的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 复用问题

UITableView编辑

用多项选择隐藏 UITableView 上的圆圈

iOS UITableView-纯代码创建UITableView,Cell点击事件,Cell左滑删除

iOS UITableView-纯代码创建UITableView,Cell点击事件,Cell左滑删除

iOS UITableView