首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS上的WEEX RichText组件

iOS上的WEEX RichText组件
EN

Stack Overflow用户
提问于 2018-06-01 19:43:25
回答 1查看 98关注 0票数 0

我正在通过扩展WXComponent在Weex中创建一个Richtext(WXTextView.swift)视图组件。Richtext组件目前在weex iOS sdk中不可用。

下面是我的WXRichText.swift示例代码

代码语言:javascript
复制
    import Foundation
    import WeexSDK
    import UIKit

    class TextComponet: WXComponent {

    var attributedText: NSAttributedString?

    override func loadView() -> UIView {
        let label = UILabel()
        label.numberOfLines = 0
        label.attributedText = attributedText
        label.sizeToFit()
        label.adjustsFontSizeToFitWidth = true
        return label
    }

    override init(ref: String, type: String, styles: [AnyHashable : Any]?, attributes: [AnyHashable : Any]? = nil, events: [Any]?, weexInstance: WXSDKInstance) {
        super.init(ref: ref, type: type, styles: styles, attributes: attributes, events: events, weexInstance: weexInstance)
        if let data = attributes?["data"] as? String {
            let htmlString = "<html><body>\(data)<body></html>"
            attributedText = htmlString.htmlToAttributedString
        }
    }

    func data(_ text: String) {

    }
}

extension String {
    var htmlToAttributedString: NSAttributedString? {
        guard let data = data(using: .utf8) else { return NSAttributedString() }
        do {
            return try NSAttributedString(data: data, options: [NSAttributedString.DocumentReadingOptionKey.documentType:  NSAttributedString.DocumentType.html], documentAttributes: nil)
        } catch {
            return NSAttributedString()
        }
    }

    var htmlToString: String {
        return htmlToAttributedString?.string ?? ""
    }
}

和JS代码

代码语言:javascript
复制
<template>
  <div>
    <text class="message">Hi Bramma</text>
    <richText
      :data="data"
    >
    </richText>
  </div>
</template>

<script>
export default {
  data () {
    return {
      data: '<p style="color:red">This text is normal.</p><p><b>This text is bold.</b></p>'
    }
  }
}
</script>

不出所料,它不会在原生端通过Weex显示任何文本。

EN

回答 1

Stack Overflow用户

发布于 2018-06-04 15:18:51

您应该返回一个没有特定框架的视图,并在JS中添加宽和高样式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50642675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档