L'apertura di un UIActivityIndicatorView dopo un UIActionSheet
-
19-09-2019 - |
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.
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