我有20个htmls,我正在webview中加载它。 但是,我正在创建3个webview放置在scrollview上并重用这些webview直到html计数完成。 我在
中加载html内容-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
滚动网页浏览时正在慢慢加载。我想快速加载这些网页视图。如何做到这一点。任何人都可以帮助我。谢谢。提前感谢。
答案 0 :(得分:0)
一种可能的解决方案是在显示之前下载并缓存所有页面。
请参阅此答案以下载HTML网页并在本地编写。
https://stackoverflow.com/q/5607132/300972
创建一个包含对这些页面的引用的数组,然后将它们加载到UIWebView
中的相应scrollViewDidEndDecelerating
中。
更新
使用上面的链接,它看起来像这样。请注意,我没有测试过这个。
// NSArray *urls;
// NSMutableArray *filePaths;
- (void)viewDidLoad
{
[super viewDidLoad];
urls = [NSArray arrayWithObjects:@"http://www.url1.com", @"http://www.url2.com", @"http://www.url3.com", nil];
for (int i=0; i<[urls count]; i++)
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [NSString stringWithFormat:@"%@/%@.html", [paths objectAtIndex:0], [urls objectAtIndex:i]];
NSURL *url = [NSURL URLWithString:[urls objectAtIndex:i]];
NSData *urlData = [NSData dataWithContentsOfURL:url];
[urlData writeToFile:filePath atomically:YES];
}
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
// Do some calculation to find index of webpage, this depends on
// the size of the scrollview and the size of the webview.
int index = ...;
NSString *filePath = [NSString stringWithFormat:@"%@/%@.html", [paths objectAtIndex:0], [urls objectAtIndex:i]];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:filePath]]];
}