Есть ли способ иметь UILabels
или UITextViews
с UIButtons
?UILabel с UIButtons
Пример 1: «Это Автомобиль желтый и имеет 4 колеса».
Где Автомобиль является UIButton
и может быть в любом месте предложения.
Есть ли способ иметь UILabels
или UITextViews
с UIButtons
?UILabel с UIButtons
Пример 1: «Это Автомобиль желтый и имеет 4 колеса».
Где Автомобиль является UIButton
и может быть в любом месте предложения.
Используйте NSAttributedString
со ссылками на нужные вам диапазоны и отобразите их в TTTAttributedLabel
. Затем вы можете получить обратный вызов всякий раз, когда используется ссылка.
Я хочу, чтобы uibuttons мог вызвать методы, я не хочу открывать ссылки в uiwebview. Или вы предлагаете использовать ссылки и анализировать их с помощью делегата uiwebview? – bruno
@bruno yep, есть пользовательская ссылка, например custom-link: // more-data-here, а затем проверить схему URL-адреса при вызове делегата – rounak
Работает. Я использовал addLinkToURL из библиотеки TTT. – bruno
Вы можете назначить UITapGestureRecognizer на метку, чтобы обнаружить кран:
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelTapped:)];
tapGestureRecognizer.numberOfTapsRequired = 1;
[myLabel addGestureRecognizer:tapGestureRecognizer];
myLabel.userInteractionEnabled = YES;
Затем в «labelTapped:» селектор метода, вы вычислить местоположение крана в раме этикетки с жестом объект. Затем вам нужно будет определить местоположение слова в метке и посмотреть, было ли касание в этом CGRect.
Я сделал это с помощью приложения, используя метод UITextView.firstRectForRange. Это позволяет получить координаты текста в UITextView.
В тексте я использовал кнопки и волшебные маркеры. При рендеринге я располагал волшебные маркеры и размещал UIButtons поверх. например @ «В этом возрасте $ Train $» будет помещена кнопка с заголовком @ «Поезд» над маркером.
Вы также можете заменить каждый маркер цветным текстом, записывая местоположения с помощью RectForRange. Затем используйте сенсорные жесты, чтобы определить, был ли выбран какой-либо из прямоугольников.
Ну, если я не ошибаюсь, вы хотите добавить отображаемый текст внутри 'UILabel'. Лучшим подходом было бы использовать [TTTAttibutedLabel] (https://github.com/TTTAttributedLabel/TTTAttributedLabel). Просто перейдите по ссылке, и вы узнаете, как добавлять ссылки к определенным словам в ваших ярлыках, а также вызывать собственные селекторы при выборе этих слов. – n00bProgrammer
@UtkarshSingh приятно. Я попробую это. – bruno
С помощью 'UITextView' вы можете использовать' NSAttributedString' и 'NSLinkAttributeName'. – Larme