2012-01-18 17 views

Odpowiedz

7

Jedynym sposobem, w jaki widzę, aby zaimplementować to, co próbujesz, jest niestandardowy widok alertu.

Istnieje kilka metod, które można zastosować. Jednym z nich jest podklasowanie UIAlertView i tutaj można znaleźć krótki samouczek: Subclass UIAlertView. W swojej podklasie możesz zbudować alert w dowolny sposób, w jaki chcesz zaimplementować tekst z obsługą dotykową. Zajrzyj do this tutorial, aby dowiedzieć się, jak to zrobić.

1

Wpadłem dzisiaj na ten problem. Potrzebowałem numerów telefonów i adresów, które można kliknąć w moim widoku alertu, i przez jakiś czas nie mogłem się zorientować, ponieważ niestandardowe wyświetlenia alertów nie wchodzą w grę.

Po kilku badaniach wydaje się, że można dodać widok tekstowy do widoku alertu, który wydawał się rozwiązać mój problem. Oto moje podejście, które pozwala na dynamiczne skalowanie alertviews (uwaga: przy użyciu C# z 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

Co to jest „właściciel”? druga do ostatniej linii. Działa świetnie, przy okazji! – stepheaw

Powiązane problemy