Как добавить сенсорную ссылку URL в ссылку в сообщении UIAlertView? - PullRequest
11 голосов
/ 18 января 2012

Я хочу добавить кликабельную ссылку URL в сообщении UIAlertView. Таким образом, когда пользователь видит окно с предупреждением, он может нажать на ссылку внутри сообщения. Кроме того, они могут перейти дальше, нажав на кнопку ОК.

Возможно ли это сделать? Как?

Ответы [ 2 ]

7 голосов
/ 18 января 2012

Я вижу единственный способ реализовать то, что вы пытаетесь сделать, - это настраиваемое представление предупреждений.

Есть несколько подходов, которые вы можете использовать. Одним из них является создание подкласса UIAlertView, и здесь вы можете найти краткое руководство: Подкласс UIAlertView . Затем в своем подклассе вы можете создать оповещение любым удобным для вас способом с помощью сенсорного текста. Посмотрите этот урок , чтобы узнать, как это сделать.

1 голос
/ 07 июля 2016

Я столкнулся с этой проблемой сегодня, мне нужно было иметь номер телефона и адрес, на которые можно щелкнуть мышью, в моем представлении предупреждений, и я довольно долго находился в тупике, так как пользовательские представления предупреждений не обсуждались.

После некоторых исследований кажется, что вы можете добавить текстовое представление к просмотру предупреждений, которое, казалось, решило мою проблему.Вот мой подход, который позволяет динамически масштабировать просмотры предупреждений (примечание: использование 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();
...