繁体   English   中英

iOS 可点击单词(UILabel 或 UIbutton 的)

[英]iOS Clickable Words (UILabel or UIbutton's)

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

你的文本区域有多大? 如果它很大,那么为每件作品创建一个 UIButton 听起来像是为了让文本正确布局而付出的努力。

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

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

并将您的视图 controller 作为 webView 的UIWebViewDelegate delegate附加。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM