我正在开展一个项目。我已经实现了可扩展单元格,我在单元格上有一些信息,当我点击它时,它会展开显示描述。
我正在UIWebView
中加载说明,因为我正在html
格式JSON
进行说明。
我遇到的问题是UITableView
中的滚动是滞后的,我99%肯定是导致问题的UIWebView
,因为我有其他的表格视图以及不可扩展的单元格,他们滚动得很顺利。
我想我可以通过不让开头的表加载html
内容来解决问题,只在我选择的每个单元格的Didselect方法上加载它。
但是我很难完成这个。无论如何,我只能为1个特定的单元格加载UIWebView
(在这种情况下只有我点击的单元格)。
任何帮助表示赞赏。
如果您认为有另一种方法可以解决这个问题,请随时提出建议。
提前致谢
PS:我在swift
中查看了youtube
的可扩展单元格教程,并且或多或少相同。
答案 0 :(得分:1)
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
//Background Thread
NSData* data = [NSData dataWithContentsOfURL:@"YOUR URL"];
dispatch_async(dispatch_get_main_queue(), ^(void){
//Run UI Updates
[mWebView loadData:data MIMEType: @"text/html" textEncodingName: @"UTF-8" baseURL:nil];
});
});
答案 1 :(得分:0)
使用GCD,它将在后台运行UIWebview加载过程,并在加载时加载UIWebview
答案 2 :(得分:0)
Ok Guys vaibby是对的。谢谢大家的回复。
我使用过GCD,但是在错误的地方调用了它。 只是想让你知道问题已经解决了。 我所做的是作为第一步缓存UItableView的图像。 作为第二步和非常重要的一步,我将Async库实现到我的项目中,并在cellForRowAtIndexPath函数中使用它来调用Async.background中的webView(因此它在后台线程中绘制UIwebView),现在滚动工作正常应该如此。