Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 若子按钮被禁用,则停止将事件传递给父按钮_Ios_Uiresponder - Fatal编程技术网

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委托,如我所说,这将在不同级别上处理事件