Domanda

Ho alcune operazioni distruttive che hanno bisogno di conferma, e sto usando l'UIActionSheet.

All'interno della clickedButtonAtIndex I fuoco alcune operazioni lenghtly che necessitano di un UIActivityIndicatorView.

Il problema è che non riesco a vedere l'UIActivityIndicatorView finché l'UIActionSheet ha chiuso, e questo avviene quando l'operazione è terminata.

Posso forzare per chiudere l'UIActionSheet anche se l'utente ha premuto alcuni tasti e la loro delegato clickedButtonAtIndex è stato licenziato?

In pseudo-codice:

  • l'utente vuole fare qualche operazione distruttiva
  • Richiesta di conferma con un UIActionSheet
  • L'utente dice YES
  • Delegato clickedButtonAtIndex incendi e invoca un'operazione lenghtly
  • Questa operazione, la prima cosa che fa è l'apertura di un UIActivityIndicatorView ma perché l'UIActionSheet è attiva, non riesco a vedere fino alla fine ...

grazie,

r.

È stato utile?

Soluzione

È possibile chiamare

CFRunLoopRunInMode(UITrackingRunLoopMode, 0.1, true);

di lasciare che gli elementi dell'interfaccia utente rinfrescare prima che inizi il calcolo lungo. In alternativa, è possibile utilizzare

-(void)doLengthyOperation {
   show_activity_indicator_view();
   [self performSelector:@selector(doRealLengthyOperation) withObject:nil afterDelay:0.1];
}
-(void)doRealLengthyOperation {
   // do the real lengthy operations.
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top