Нажмите на UILabel и выполните действие

У меня простая проблема, у меня есть строка типа "#my#name#is#umesh#verma" и я назначаю метку ячейки UITableview,

cell.detaillabel.text = @"#my#name#is#umesh#verma";

Моя проблема заключается в том, как получить имя каждого слова, когда я нажимаю на один элемент. Если я нажму на #umesh, я получу слово «umesh»..


person Umesh Verma    schedule 12.04.2016    source источник
comment
проверьте этот stackoverflow. ком/вопросы/4373053/   -  person kb920    schedule 12.04.2016
comment
Вы можете динамически генерировать несколько ярлыков или кнопок в соответствии с количеством имен. Разделите строку символом #, чтобы получить массив слов. В цикле for добавить кнопку или метку динамически.   -  person Ketan Parmar    schedule 12.04.2016
comment
Я последовал вашему предложению, но столкнулся с некоторой проблемой, когда я генерирую несколько кнопок, и мне нужно перезагрузить таблицу, тогда эти компоненты добавляются во все ячейки при добавлении компонентов как.. [cell.detaillabel.contentview addsubview:[uilabel]];   -  person Umesh Verma    schedule 12.04.2016


Ответы (2)


Более лучшим решением является добавление пользовательской метки, которая поддерживает касания. Например, TTTAttributedLabel поддерживает касания по ссылкам.

Основная задача — получить уведомление, когда пользователь коснется слова, и идентифицировать слово.

Вы можете добавить URL-адреса (со специальным форматом) к любому слову и подписаться на уведомление, когда пользователь нажимает на него (как делегат на метку). Например, вы можете создать этот URL-адрес для «слова»:

сенсорная схема://слово

person Andrew Romanov    schedule 12.04.2016

Я не проверял, как выполнить действие при нажатии на UILabel. Однако я испытал это с UITextView. Для этого вы можете использовать «NSLinkAttributeName».

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

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:yourString];
    [attributedString addAttribute:NSLinkAttributeName value:url range:range];
[textView setAttributedText:attributedString];

Установите делегата в свой textView и обработайте следующий метод

-(BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange{
// You can retrive your string here or perform an action
return YES;

}

Надеюсь, это будет полезно для вас.

person HSG    schedule 12.04.2016