我想在我的应用中创建一个只读文本区域,允许用户点击任何单词,应用程序将其读出。然而,我对哪种方法最好有点困惑。我看到两个选项,使用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;}
答案 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:
委托方法拦截对每个单词的按下:)