ios textview html,UITextView中的HTML格式

我是iOS开发的新手,现在正在开发可接收某种JSON数据的应用程序。但是一些后端专家认为,如果他们只是直接从Word复制信息并将其粘贴到信息系统中,对用户会更好。所以我坐在这里,尝试在UITableView中创建可点击的链接。

我从Web解析数据并获取具有以下格式的字符串:

Für mehr Informationen klicken sie here.

我已经尝试过UILabel,但是经过一些研究,我现在使用了经常建议使用的UITextView。在属性检查器中,我将其设置为属性文本并启用了链接检测。现在,文本显示为红色并且可以单击。

现在对我来说问题是,HTML标记和正确的(德语)字符集仍然丢失,我不知道如何以正确的方式显示它。

显示的字符串以这种方式解析:

func showHTMLString(unformattedString: String) -> NSAttributedString{

var attrStr = NSAttributedString(

data: tmpString.dataUsingEncoding(NSUnicodeStringEncoding, allowLossyConversion: true)!,

options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],

documentAttributes: nil,

error: nil)

return attrStr!

}

如果我用attrStr?.string正确的格式显示Textview 的Format,但链接也消失了。

有什么建议如何以正确的方式格式化显示的字符串?

在此先感谢AR4G4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 安卓的TextView组件提供了展示HTML格式代码的功能,使用Html.fromHtml方法可以将HTML格式的字符串转换为Spanned对象,并且可以显示字体样式、颜色、链接等元素。 首先,需要在布局文件创建一个TextView组件: ``` <TextView android:id="@+id/htmlTextView" android:layout_width="match_parent" android:layout_height="wrap_content" /> ``` 然后,在代码获取TextView组件的实例,并将HTML代码设置给它: ``` TextView htmlTextView = findViewById(R.id.htmlTextView); String htmlCode = "<b>加粗文本</b>,<font color='#FF0000'>红色文本</font>,<a href='http://www.example.com'>链接文本</a>"; htmlTextView.setText(Html.fromHtml(htmlCode)); ``` 上述代码HTML代码包含了加粗文本、红色文本和链接文本。Html.fromHtml方法可以解析这些HTML标签,并将其转换为Spanned对象,随后可以将其设置为TextView的文本内容。 需要注意的是,为了支持链接文本,还需要设置TextView的点击事件,使得用户可以点击链接进行跳转: ``` htmlTextView.setMovementMethod(LinkMovementMethod.getInstance()); ``` 这样,就可以通过TextView完美展示HTML格式的代码了。 ### 回答2: 在安卓,我们可以使用TextView来展示HTML格式的代码。为了实现完美展示,我们可以采取以下步骤: 1. 在XML布局文件,将TextView的android:autoLink属性设置为none,这样可以避免链接被自动点击。 2. 在java代码,使用Html.fromHtml()方法将HTML格式的代码转换为Spanned对象。 例如,假设我们有一个包含HTML格式代码的字符串myHtmlCode,我们可以使用以下代码将其展示在TextView: ```java String myHtmlCode = "<b>加粗文字</b> <i>斜体文字</i>"; TextView textView = findViewById(R.id.textView); textView.setText(Html.fromHtml(myHtmlCode)); ``` 3. 如果我们想要自定义HTML样式,可以创建一个Html.TagHandler对象并将其传递给Html.fromHtml()方法的第二个参数。 TagHandler可以用于处理HTML标签,并在需要的地方应用自定义样式。例如,我们可以创建一个自定义的TagHandler来处理特定标记,并为其添加特定的样式。 ```java String myHtmlCode = "这是一个<customtag>自定义标签</customtag>"; TextView textView = findViewById(R.id.textView); textView.setText(Html.fromHtml(myHtmlCode, null, new CustomTagHandler())); ``` 这样,TextView就能够完美展示HTML格式的代码了。请注意,为了正常显示HTML代码,我们还需要确保TextView的宽度和高度足够大,以便完整展示所有内容。 ### 回答3: 要想在安卓TextView完美展示HTML格式的代码,可以借助Html类和fromHtml()方法来实现。 首先,在代码找到对应的TextView控件,并设置其文本: TextView textView = findViewById(R.id.textView); textView.setText(Html.fromHtml(htmlString)); 其htmlString是HTML格式的字符串,可以包含标签、属性和样式等。接下来,需要对TextView进行一些配置,以确保HTML格式的代码能够正确地展示出来。 1. 支持链接点击: textView.setMovementMethod(LinkMovementMethod.getInstance()); 这样,在TextView的超链接就可以点击了。 2. 支持自定义字体样式: 可以通过使用SpannableStringBuilder类来实现自定义字体样式,例如设置字体颜色、大小等。 3. 支持图片显示: 如果HTML代码包含图片,可以使用Html.ImageGetter接口和Spanned类的setSpan()方法来显示图片。 总的来说,通过Html类和TextView的fromHtml()方法,可以将HTML格式的代码转换为可显示的文本,并根据需要对TextView进行进一步的配置,以完美展示HTML格式的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值