2012-01-18 3 views

risposta

7

L'unico modo che vedo per implementare ciò che si sta provando è attraverso una visualizzazione di allerta personalizzata.

Esistono diversi approcci che è possibile adottare. Uno sta sottoclassi UIAlertView e qui puoi trovare un breve tutorial: Subclass UIAlertView. Nella sottoclasse è possibile quindi creare l'avviso in qualsiasi modo si desideri implementare il testo abilitato al tocco. Date un'occhiata a this tutorial per un modo per farlo.

1

Mi sono imbattuto in questo problema oggi, avevo bisogno di avere numeri di telefono e indirizzi cliccabili nella mia vista di avviso ed è stato fermato per un bel po 'perché le visualizzazioni di avviso personalizzate sono fuori questione.

Dopo alcune ricerche sembra possibile aggiungere una vista testuale a una vista degli avvisi che sembra risolvere il mio problema. Qui è il mio approccio che permette di scalare dinamicamente alertviews (nota: utilizzando C# con Xamarin):

// create text view with variable size message 
UITextView alertTextView = new UITextView(); 
alertTextView.Text = someLongStringWithUrlData; 

// enable links data inside textview and customize textview 
alertTextView.DataDetectorTypes = UIDataDetectorType.All; 
alertTextView.ScrollEnabled = false; // is necessary 
alertTextView.BackgroundColor = UIColor.FromRGB(243, 243, 243); // close to alertview default color 
alertTextView.Editable = false; 

// create UIAlertView 
UIAlertView Alert = new UIAlertView("Quick Info", "", null, "Cancel", "OK"); 
Alert.SetValueForKey(alertTextView, (Foundation.NSString)"accessoryView"); 

// IMPORTANT/OPTIONAL need to set frame of textview after adding to subview 
// this will size the text view appropriately so that all data is shown (also resizes alertview 
alertTextView.Frame = new CoreGraphics.CGRect(owner.View.Center, alertTextView.ContentSize); 
Alert.Show(); 
+0

Che cosa è "proprietario"? penultima riga. Funziona alla grande! – stepheaw