2011-10-10 20 views
6

La mia app deve salvare un'immagine su disco. Lo faccio in un thread separato, quindi l'interfaccia utente è ancora reattiva, MA, non voglio che l'utente aggiunga una nuova immagine finché il primo non viene salvato (circa 1 secondo)Disattiva intero UIView

Al momento, I ' m disabilitando il pulsante 'scatta un'altra foto' e ingrigendolo, ma mi chiedo se c'è un metodo che disabiliterà l'intera vista, schiacciando i pulsanti e oscurando lo sfondo, come succede quando viene presentato un UIActionSheet.

Ho guardato attraverso la documentazione UIView e non vedo nulla di simile, ma sembra che un modello così utile che viene spesso utilizzato da Apple che ho pensato di chiedere, nel caso in cui ci fosse un tale cosa.

Ovviamente potrei farlo manualmente, ma perché reinventare la ruota se è già parte dell'API.

TIA: John

risposta

21

set qualsiasi vista (vista principale, visualizzazione secondaria, ecc) che si desidera visualizzare disabilitato per

view.userInteractionEnabled = NO 

e anche

view.alpha = 0.3f 

e forse anche

view.backgroundColor = [UIColor grayColor] 

per l'avvio. Questi ultimi due possono essere animati, b.t.w.

+0

Gosh, era difficile decidere quale risposta fosse giusta ... Il metodo di Bourne era più simile a quello che pensavo inizialmente, ma questo metodo è così semplice e mi sembra "giusto". Vorrei poter contrassegnare entrambi come corretto. Grazie ragazzi. – John

5

Presente un'altra vista con l'ombra e l'eccetera gradiente sopra questa vista dando in tal modo un effetto di grigi con ombre. Puoi persino creare un'immagine se conosci il tuo photoshop. Basta mostrare quell'immagine su UIImageView su questa vista per essere bloccata. Dare l'immagine di qualche bella traslucenza, ombre ecc ecc