Кликабельные слова iOS (UILabel или UIbutton's) - PullRequest
0 голосов
/ 16 августа 2011

Я хочу создать текстовую область только для чтения в моем приложении, которая позволяет пользователю нажимать на любое слово, и приложение считывает его. Я, однако, немного запутался, какой метод будет лучшим. Я вижу два варианта, использую UILabel и создаю какой-то метод, чтобы обнаружить область, по которой щелкнули, и сопоставить ее со словом в этой области, но это сложно реализовать. С другой стороны, я мог бы использовать массив слов для создания списка UIbutton. Спасибо за советы и / или примеры кода, которые будут мне полезны, спасибо Джейсону.

Примечание. В каждом представлении содержится около 30 слов.

Решение ниже работает хорошо. Для тех, кто хочет использовать это, эти четыре строки установят в UIWebView четкий фон и отключат любую прокрутку или отскок.

[[myWebView.subviews objectAtIndex:0] setScrollEnabled:NO];
[[myWebView.subviews objectAtIndex:0] setBounces:NO];
[myWebView setBackgroundColor:[UIColor clearColor]];
[myWebView setOpaque:NO]; 

И несколько удобных CSS для остановки всплывающего окна, когда пользователь нажимает и удерживает ссылку.

*{-webkit-touch-callout:none; -webkit-user-select: none;} 

1 Ответ

4 голосов
/ 16 августа 2011

Насколько велика ваша текстовая область? Если он большой, то создание UIButton для каждой работы звучит как эфес для правильной верстки текста.

Я бы использовал UIWebView - сделайте каждое слово таким:

<a href="wordpress://WORD1">WORD1</a> <a href="wordpress://WORD2">WORD2</a> <a href="wordpress://WORD3">WORD3</a>

и подключите ваш контроллер представления как UIWebViewDelegate delegate.

в WebView.

Затем вы можете перехватывать нажатия на каждое слово, используя метод делегата webView:shouldStartLoadWithRequest:navigationType::)

...