我有一些文字需要显示在我的应用程序中。该文本包含需要交互的链接。我试过在UITextViews
和UILabels
中制作可点击链接的一些解决方案。根据内容字体大小动态调整UIWebView的尺寸
UITextView
链接UITextView
提供数据检测该拿起的网址,让他们可点击。- 我无法使用,因为链接只能在Safari中从外部打开,因此无法控制并按照链接执行操作。使用“花式标签”(http://furbo.org/2008/10/07/fancy-uilabels/)
- 几乎完美的解决方案,链接提供的检测和用户的方式来查看和在线挖掘他们给了我完全控制
UILabel
链接按下时如何处理链接。- 当前无法使用,因为实现使用
UIButton
s来覆盖链接,并且它们不包含长链接上的文本。
最后我决定使用webview。我将文本传递到webview中,并在其周围构建一个基本的HTML包装器,并且所有内容都是hunky-dory。这与Twitter for iPhone(又名Tweetie)使用的方法相同。
我现在唯一的问题是,如果文本太长,web视图剪辑溢出并滚动查看剪切的文本。其次,如果文字太短,那么webview下面会有大面积的浪费空间。
与Tweetie不同,我在webview下面有更多的内容,我想避免滚动溢出或浪费的空间。 webview无论如何都是滚动视图的子视图,所以整个页面的内容可以增长而不需要滚动子视图。
有没有什么办法可以动态调整webview的大小,使其基于它的内容只是正确的高度?
我到目前为止已经试过很多事情,似乎没有什么是固溶体:
sizeToFit
什么也不做(或者更可能只是将大小设置为当前帧是什么反正)。sizeThatFits:
无论如何返回其当前大小。NSString
的sizeWithFont:constrainedToSize:
是不可行的,因为UIWebView
和UIFont
有不同的表示大小为18。- 只是为了详细说明这一点。在我的测试中,我发现一个scaleFactor为1.0和
scalesPageToFit
的webView设置为NO
,并且整个页面的字体大小设置为13.5pt(在CSS中)呈现与UILabel
相同大小的文本,其中UIFont
如果有人能解释我,我会很感激。
- 只是为了详细说明这一点。在我的测试中,我发现一个scaleFactor为1.0和
- 此外,在webView中,我使用CSS属性
word-wrap: break-word;
以防止webView水平滚动长词或URL。正因为如此,webView和UILineBreakModeWordWrap
之间的包装行为完全不同。即使使用UILineBreakModeCharacterWrap
也不会产生相同的结果。
无论如何没有办法做到这一点,或者我是愚蠢的,缺少一些简单的东西。如果有人能提供一些见解,我会非常感激。谢谢。
看起来不错,当我下一步需要这样做时,我会尝试一下。 – Jasarien 2010-12-03 16:03:08