2011-10-11 22 views
5

ho creato un metodo - (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath { per UITableViewCellAccessoryDetailDisclosureButton.C'è qualche differenza tra l'UITableViewCellAccessoryDetailDisclosureButton e UITableViewCellAccessoryDisclosureIndicator

Ora voglio utilizzare UITableViewCellAccessoryDisclosureIndicator al posto di UITableViewCellAccessoryDetailDisclosureButton.

C'è qualche differenza tra UITableViewCellAccessoryDetailDisclosureButton e UITableViewCellAccessoryDetailDisclosureButton?

risposta

2

C'è differenza. UITableViewCellAccessoryDetailDisclosureButton è in realtà un pulsante ma UITableViewCellAccessoryDisclosureIndicator non lo è.

È possibile utilizzare UITableViewCellAccessoryDisclosureIndicator invece di UITableViewCellAccessoryDetailDisclosureButton ma non si può ottenere il tableView: accessoryButtonTappedForRowWithIndexPath: metodo chiamato quando si tocca il UITableViewCellAccessoryDisclosureIndicator in quanto non è un pulsante.

+0

come posso chiamare tableView: accessoryButtonTappedForRowWithIndexPath: metodo utilizzando UITableViewCellAccessoryDisclosureIndicator ??? ... o come posso utilizzare il pulsante personalizzato su UITableViewCellAccessoryDetailDisclosureButton in modo che possa eseguire l'azione toccando su di esso .. ?? – Varsha

+0

Creare un pulsante con target/azione e assegnarlo come vista accessoria. Omettere tableView: accessoryButtonTappedForRowWithIndexPath: metodo. – EmptyStack

+0

puoi per favore spiegarlo ??, ... come posso aggiungere un pulsante su UITableViewCellAccessoryDetailDisclosureButton ??? .. – Varsha

6

Apple HIG suggerisce di utilizzare UITableViewCellAccessoryDisclosureIndicator per navigare tra i dati gerarchici e UITableViewCellAccessoryDetailDisclosureButton per eseguire alcune azioni, con la possibilità di aprire una vista di modifica, che potrebbe modificare i dati. Tuttavia, la maggior parte dei programmatori sembra ignorarlo.

È possibile implementare il metodo delegato tableView:didSelectRowAtIndexPath: come questo:

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath { 
    [self tableView:tableView didSelectRowAtIndexPath:indexPath]; 
} 

O viceversa.

0

Sì, sono diversi.

Utilizzare UITableViewCellAccessoryDetailDisclosureButton quando l'utente tocca il pulsante blu esegue un'azione diversa rispetto a toccare il resto della riga, anche se il resto della riga non fa nulla.

Utilizzare UITableViewCellAccessoryDisclosureIndicator quando l'intera riga è selezionabile e produce la stessa azione.

Se il tuo comportamento è qualcos'altro, usa qualche altro meccanismo.

Problemi correlati