如果禁用子按钮,则停止将事件传递给父级

时间:2015-03-23 09:36:56

标签: ios uiresponder

UIButton上有UITableViewCell,如果我设置了

button.enabled = false;

...然后点击该按钮会触发点击UITableViewCell

因此,如果按钮被禁用,那么如何确保点击它不会触发表格单元格点击?

2 个答案:

答案 0 :(得分:1)

你可以这样做

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
     UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

     if(!cell.btn.enable)
        return;
}

答案 1 :(得分:0)

一种方法是不禁用按钮,但只是认识到有问题的按钮此刻不会响应触摸事件而什么都不做 在此按钮的处理程序中。

if( buttonIsActive )
{
  // trigger whatever the button was intended to trigger
}

为了做到这一点,你需要继承UIButton并添加一个属性 buttonIsActive

如果你不这样做,我猜你将不得不在不同的层面上处理该事件(比如在UITableViewCell的处理程序中)或转动手势识别(也就是选择)(参见Praful Kadam的答案) )。