iOS可点击单词(UILabel或UIbutton's)

时间:2011-08-16 13:16:58

标签: iphone objective-c ios uibutton uilabel

我想在我的应用中创建一个只读文本区域,允许用户点击任何单词,应用程序将其读出。然而,我对哪种方法最好有点困惑。我看到两个选项,使用UILabel并创建一些方法来检测点击的区域,然后将其与该区域中的单词匹配,但听起来很难实现。另一方面,我可以使用一个单词数组来创建一个UI按钮列表。感谢杰森,任何建议和/或示例代码都会非常感谢。

注意:每个视图上都有大约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 个答案:

答案 0 :(得分:4)

你的文字区有多大?如果它很大,那么为每个工作创建一个UIButton听起来有点像是为了使文本正确布局。

我会使用UIWebView - 让每个单词都这样:

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

并将您的视图控制器附加为webView的UIWebViewDelegate delegate

然后,您可以使用webView:shouldStartLoadWithRequest:navigationType:委托方法拦截对每个单词的按下:)