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