Одним из возможных решений было бы загрузить и кэшировать все страницы перед отображением.
См. Этот ответ для загрузки веб-страниц 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]]];
}