2015-02-04 3 views
0

Есть ли способ иметь UILabels или UITextViews с UIButtons?UILabel с UIButtons

Пример 1: «Это Автомобиль желтый и имеет 4 колеса».

Где Автомобиль является UIButton и может быть в любом месте предложения.

+0

Ну, если я не ошибаюсь, вы хотите добавить отображаемый текст внутри 'UILabel'. Лучшим подходом было бы использовать [TTTAttibutedLabel] (https://github.com/TTTAttributedLabel/TTTAttributedLabel). Просто перейдите по ссылке, и вы узнаете, как добавлять ссылки к определенным словам в ваших ярлыках, а также вызывать собственные селекторы при выборе этих слов. – n00bProgrammer

+0

@UtkarshSingh приятно. Я попробую это. – bruno

+0

С помощью 'UITextView' вы можете использовать' NSAttributedString' и 'NSLinkAttributeName'. – Larme

ответ

1

Используйте NSAttributedString со ссылками на нужные вам диапазоны и отобразите их в TTTAttributedLabel. Затем вы можете получить обратный вызов всякий раз, когда используется ссылка.

+0

Я хочу, чтобы uibuttons мог вызвать методы, я не хочу открывать ссылки в uiwebview. Или вы предлагаете использовать ссылки и анализировать их с помощью делегата uiwebview? – bruno

+0

@bruno yep, есть пользовательская ссылка, например custom-link: // more-data-here, а затем проверить схему URL-адреса при вызове делегата – rounak

+0

Работает. Я использовал addLinkToURL из библиотеки TTT. – bruno

0

Вы можете назначить UITapGestureRecognizer на метку, чтобы обнаружить кран:

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelTapped:)]; 
tapGestureRecognizer.numberOfTapsRequired = 1; 
[myLabel addGestureRecognizer:tapGestureRecognizer]; 
myLabel.userInteractionEnabled = YES; 

Затем в «labelTapped:» селектор метода, вы вычислить местоположение крана в раме этикетки с жестом объект. Затем вам нужно будет определить местоположение слова в метке и посмотреть, было ли касание в этом CGRect.

0

Я сделал это с помощью приложения, используя метод UITextView.firstRectForRange. Это позволяет получить координаты текста в UITextView.

В тексте я использовал кнопки и волшебные маркеры. При рендеринге я располагал волшебные маркеры и размещал UIButtons поверх. например @ «В этом возрасте $ Train $» будет помещена кнопка с заголовком @ «Поезд» над маркером.

Вы также можете заменить каждый маркер цветным текстом, записывая местоположения с помощью RectForRange. Затем используйте сенсорные жесты, чтобы определить, был ли выбран какой-либо из прямоугольников.

Смежные вопросы