我有个问题。我的应用程序的一部分需要在表格中显示文本。文本需要可选择/可复制(但不可编辑),并且文本中的任何 URL 都需要突出显示,并且当点击时允许我获取该 URL 并打开我的嵌入式浏览器。
我见过一些解决方案可以解决其中一个问题,但不能同时解决这两个问题。
解决方案 1:Icon Factory 的 IFTweetLabel
我尝试的第一个解决方案是使用 IFTweetLabel 类,该类由 Icon Factory 实现并在 Twitterrific 中使用。
虽然此解决方案允许检测链接(或您可以使用正则表达式找到的任何内容)以根据具体情况进行处理,但它不允许选择和复制。
还有一个问题是,如果 URL 足够长以进行包装,则该类覆盖在 URL 上方以使其具有交互性的按钮无法包装并拉出屏幕,看起来很奇怪。
解决方案 2:使用 IFTweetLabel 并手动处理副本
我尝试的第二件事是保留 IFTweetLabel 以处理链接,但使用长按手势实现复制,就像 SMS 应用程序如何处理它一样。这只是关于工作,但它不允许任意选择文本,复制整个文本,或者根本不复制任何文本......非常黑白。
解决方案3:UITextView
我的第三次尝试是添加一个UITextView
作为表格单元格的子视图。
唯一不能解决的问题是我无法处理检测到的 URL。文本视图使用UIApplication
'openURL:
方法退出我的应用程序并启动 Safari。
此外,由于 table view 可能会变得非常大,UITextView
作为子视图添加的 s 数量会导致滚动整个表格时明显的性能拖累,尤其是在 iPhone 3G 时代的设备上(因为每当滚动一个单元格时都会创建、布局、合成屏幕等)。
所以我对所有有知识的人的问题是:我能做什么?
会UIWebView
是最好的选择吗?除了性能拖累之外,我认为 webview 可以解决上述所有问题,如果我没记错的话,早在 2.0 天,Apple 文档实际上推荐了需要文本格式/超链接的 web 视图。
任何人都可以想出一种方法来实现这一目标而不会拖累性能吗?
非常感谢所有可以提供帮助的人。