/ / Se il pulsante figlio è disabilitato, interrompere il passaggio dell'evento al genitore - iOS, uiresponder

Se il pulsante figlio è disabilitato, interrompi il passaggio dell'evento a genitore - ios, uiresponder

Ho un UIButton sopra UITableViewCell e se ho impostato

button.enabled = false;

... quindi i clic successivi su quel pulsante attivano il clic su UITableViewCell.

Quindi se il pulsante è disabilitato, allora come assicurarsi che fare clic su di esso non farà scattare il clic della cella della tabella?

risposte:

1 per risposta № 1

Puoi farlo in questo modo

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

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

0 per risposta № 2

Un modo sarebbe non disabilitare il pulsante, ma riconoscere semplicemente che il pulsante in questione non risponderà agli eventi di tocco al momento e non farà nulla nel gestore per questo pulsante.

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

Per fare ciò è necessario sottoclassare UIButton e aggiungere una proprietà buttonIsActive.

Se non lo fai in questo modo, immagino che lo faraiavere a che fare con quell'evento a un livello diverso (come nel gestore di UITableViewCell) o girare il riconoscimento dei gesti, ovvero la selezione (vedi la risposta di Praful Kadam).