Ios 若子按钮被禁用,则停止将事件传递给父按钮
我在Ios 若子按钮被禁用,则停止将事件传递给父按钮,ios,uiresponder,Ios,Uiresponder,我在UITableViewCell上有一个ui按钮,如果我设置 button.enabled = false; …随后单击该按钮将触发单击UITableViewCell 所以,若按钮被禁用,那个么如何确保点击它不会触发表格单元格点击?你们可以这样做 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [
UITableViewCell
上有一个ui按钮
,如果我设置
button.enabled = false;
…随后单击该按钮将触发单击UITableViewCell
所以,若按钮被禁用,那个么如何确保点击它不会触发表格单元格点击?你们可以这样做
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if(!cell.btn.enable)
return;
}
一种方法是不禁用按钮,而只是认识到有问题的按钮此时不会响应触摸事件,并且什么也不做 在该按钮的处理程序中
if( buttonIsActive )
{
// trigger whatever the button was intended to trigger
}
为此,您需要将UIButton子类化,并添加一个属性buttonIsActive
如果您不这样做,我想您将不得不在不同的级别上处理该事件(如UITableViewCell的处理程序)或完全转换手势识别或选择(参见Praful Kadam的回答)。表格单元格应保持可点击状态。若单元格上的按钮为enable,则调用其操作,若为disable,则不应发生任何事情。若用户单击单元格上的任何其他位置,则应调用正常的did select委托,如我所说,这将在不同级别上处理事件