什么是Android" html-textview"在Objective-C

时间:2017-11-07 06:37:28

标签: android html ios objective-c uiwebview

从后端获取HTML文本,在uitableview中使用uilabel获取动态高度和自动布局,我删除了html标签,它在滚动时影响性能,在打开应用程序时花费更多时间。

现在我尝试使用uiwebview,试过代码

dynamicWebview.delegate = self;
dynamicWebview.scrollView.contentInset = UIEdgeInsetsZero;
dynamicWebview.scrollView.scrollEnabled = false;
heightConstraint.constant = dynamicWebview.scrollView.contentSize.height;
[dynamicWebview loadHTMLString:[syntable valueForKey:@"extraDesc"] baseURL:nil];

和webviewdidfinishload

- (void)webViewDidFinishLoad:(UIWebView *)aWebView {
CGRect frame = aWebView.frame;
frame.size.height = 1;
aWebView.frame = frame;
CGSize fittingSize = [aWebView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
aWebView.frame = frame;
}

但是在这个我面临着uiwebview和行高的动态高度问题,在重新加载单元格之后,它正在走出rowheight。在尝试这个之后,我认为uilabel只会是最好的,以实现我的尝试。

我试过RTLabelTTTAttributedLabel RTLabel正在支持html标签,但无法在IB中使用它,TTTAttributedLabel支持IB但不支持HTML标签

在android中实现这一点,他们正在使用一个名为html-textview的库,它也在动态调整和处理html标签。

是否还有其他目标方法可以做到这一点,如果没有;我该怎么用

编辑:我也尝试过NSAttributedString,这也影响了性能。

NSString *extraDesc = [syntable valueForKey:@"extraDesc"];
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[extraDesc dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
splittext.attributedText = attributedString;

1 个答案:

答案 0 :(得分:0)

试试这个

NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
self.htmlLabel.attributedText = attributedString;