Personalizzazione di UIAlertView

Qualcuno ha il codice per farlo:

UIAlertViewHack http://sofit.miximages.com/iphone/UIAlertViewHack.png

o meglio ancora, una griglia 3×2 di pulsanti con immagini usando l’object UIAlertView?

Non mi interessa il campo di testo, sono i pulsanti di una griglia che voglio (preferibilmente con immagini piuttosto che con testo).

Penso che la cosa migliore da fare sia dimenticare di personalizzare la vista UIAlert e creare una visualizzazione personalizzata.

Per uno, quello che stai mostrando in realtà non è un “avviso”, quindi è contrario a ciò per cui UIAlertView è progettato. Ciò significa che stai cambiando il paradigma dell’interfaccia utente per l’utente, che non è mai una buona idea.

In secondo luogo, sarebbe molto più semplice animare una vista personalizzata in posizione piuttosto che provare a hackerare UIAlertView per farlo fare ciò che vuoi.

Per prima cosa devi rendere la casella di avviso più grande per accogliere i tuoi controlli, ma deve essere posizionata al centro.

Per questo, invece di impostare la dimensione della cornice, il testo del messaggio con “\ n” s come necc. per esempio:

alert = [[UIAlertView alloc] initWithTitle:@"Rate this picture." message:@"Tap a star to rate.\n\n\n\n " /*------ look at here!!----*/ delegate:self cancelButtonTitle:nil otherButtonTitles:nil]; 

Quindi utilizzare UIAlertViewDelegate per la alertview.

sostituisci sua viewWillAppear: aggiungi i tuoi pulsanti e imposta i frame manualmente nella posizione desiderata.

O: crea un’intera vista con un controller di visualizzazione e aggiungi la vista alla finestra di avviso come:

 [myalertview addSubvew:mycomplexalert]; 

Spero che questo venga in tuo aiuto 🙂

Sto usando le caselle di avviso per l’input di valutazione con immagini stellari, twitter, feedback fb, ecc.

AGGIORNAMENTO iOS7:

Per iOS 7, crea la tua vista con i componenti e impostala come vista accessoria della vista di avviso:

 [alert setValue:imageView forKey:@"accessoryView"]; 

È così semplice 🙂

Questo tutorial spiega come sottoclass UIAlertView per ottenere una casella di testo di input. Spiega come ingrandire la vista, aggiungere sottoview (come caselle di testo o immagini) e fare una trasformazione per spostare la finestra in alto sullo schermo.

Ho scritto una sostituzione UIAlertView perfetta quasi pixel, che è anche completamente configurabile. Dai un’occhiata a CODialog se soddisfa le tue esigenze.

Non ci sono componenti integrati per questo. UIAlertView dovrebbe avere solo testo e pulsanti come da documento HIG.

Dovrai creare la tua vista personale e aggiungere controlli ad essa. L’esempio HeadsUpUI nell’SDK mostra come mostrare una vista simile a un menu come una sovrapposizione.

Spero possa aiutare.