从后端获取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只会是最好的,以实现我的尝试。
我试过RTLabel和TTTAttributedLabel 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;
答案 0 :(得分:0)
试试这个
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
self.htmlLabel.attributedText = attributedString;