Как добавить контактную ссылку Url на URL-адрес в сообщении UIAlertView?
Я хочу добавить кликабельную ссылку url в сообщение UIAlertView
.
Таким образом, когда пользователь видит предупреждение, они могут касаться ссылки внутри сообщения. В качестве альтернативы, они могут пойти дальше, нажав кнопку OK.
Можно ли это сделать? Как?
Ответы
Ответ 1
Единственный способ, с помощью которого я пытаюсь реализовать то, что вы пытаетесь, - это создать настраиваемый вид предупреждений.
Есть несколько подходов, которые вы можете предпринять. Один из них является подклассом UIAlertView, и здесь вы можете найти короткий учебник: Подкласс UIAlertView. В вашем подклассе вы могли бы создать предупреждение так, как вам нравится использовать текст с сенсорным экраном. Посмотрите этот учебник, чтобы сделать это.
Ответ 2
Сегодня я столкнулся с этой проблемой, мне нужно было иметь телефонные номера и адреса для звонков в моем предупреждающем представлении, и я был в тупике довольно долго, поскольку пользовательские виды предупреждений не могут быть и речи.
После некоторых исследований кажется, что вы можете добавить текстовое представление в alertview, которое, казалось, решило мою проблему. Вот мой подход, который позволяет динамически масштабировать alertviews (обратите внимание: используя C#
с 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();