2011-10-11 14 views
5

He creado un método - (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath { para UITableViewCellAccessoryDetailDisclosureButton.¿Hay alguna diferencia entre UITableViewCellAccessoryDetailDisclosureButton y UITableViewCellAccessoryDisclosureIndicator

Ahora quiero usar UITableViewCellAccessoryDisclosureIndicator en lugar de UITableViewCellAccessoryDetailDisclosureButton.

¿Hay alguna diferencia entre UITableViewCellAccessoryDetailDisclosureButton y UITableViewCellAccessoryDetailDisclosureButton?

Respuesta

2

Hay una diferencia. UITableViewCellAccessoryDetailDisclosureButton es realmente un botón pero UITableViewCellAccessoryDisclosureIndicator no lo es.

Usted puede utilizar UITableViewCellAccessoryDisclosureIndicator en lugar de UITableViewCellAccessoryDetailDisclosureButton pero no se puede conseguir el tableView: accessoryButtonTappedForRowWithIndexPath: método llamado al tocar en el UITableViewCellAccessoryDisclosureIndicator ya que no es un botón.

+0

¿cómo puedo llamar tableView: accessoryButtonTappedForRowWithIndexPath: método mediante UITableViewCellAccessoryDisclosureIndicator ??? ... o cómo puedo usar el botón personalizado en UITableViewCellAccessoryDetailDisclosureButton para que pueda realizar una acción tocando sobre él ... ?? – Varsha

+0

Cree un botón con destino/acción y asígnelo como vista de accesorio. Omita el método tableView: accessoryButtonTappedForRowWithIndexPath: – EmptyStack

+0

¿Puedes explicarlo? ... ¿Cómo puedo agregar un botón en UITableViewCellAccessoryDetailDisclosureButton ??? .. – Varsha

6

Apple HIG sugiere que utilice UITableViewCellAccessoryDisclosureIndicator para navegar a través de datos jerárquicos, y UITableViewCellAccessoryDetailDisclosureButton para realizar alguna acción, lo que puede hacer aparecer una vista de edición, que puede cambiar los datos. Sin embargo, la mayoría de los programadores parecen ignorar esto.

Puede implementar el método delegado tableView:didSelectRowAtIndexPath: así:

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

o viceversa.

0

Sí, son diferentes.

Utilice UITableViewCellAccessoryDetailDisclosureButton cuando el usuario que toca el botón azul realiza una acción diferente que tocar el resto de la fila, incluso si el resto de la fila no hace nada.

Use UITableViewCellAccessoryDisclosureIndicator cuando toda la fila se puede tocar y produce la misma acción.

Si su comportamiento es diferente, use algún otro mecanismo.

Cuestiones relacionadas