Я создаю приложение для iOS.Как подождать, пока вызывается webViewDidFinishLoad?
Я отделил PDF, который имеет несколько страниц в каждые страницы,
А затем создать UIWebViews, чтобы показать каждую страницу.
Код выглядит следующим образом.
for(int i = 0; i < _pageNumbers; i++)
{
_webView = [[UIWebView alloc]init];
_webView.delegate = self;
_webView.frame = imageViewFrame;
_webView.scalesPageToFit = YES;
_webView.autoresizingMask =
UIViewAutoresizingFlexibleLeftMargin |
UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleTopMargin |
UIViewAutoresizingFlexibleHeight |
UIViewAutoresizingFlexibleBottomMargin;
[self setImageAtIndex:i toScrollView:imageScrollView];
}
- (void)setImageAtIndex:(NSInteger)index toScrollView:(ImageScrollView*)ScrollView
{
UIWebView *theWebView = (ScrollView.subviews)[0];
if (index < 0 || [webViews count] <= index) {
theWebView = nil;
return;
}
dispatch_queue_t queueLoadPDF = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_sync(queueLoadPDF, ^{
NSString *document = [[[[NSString alloc]initWithString:_documwntPath]stringByAppendingString:@"/"]stringByAppendingFormat:@"Page%zd.pdf",(index + 1) ];
NSURL *url = [NSURL fileURLWithPath:document];
NSString *urlString = [url absoluteString];
NSString *encodedString=[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *webURL = [NSURL URLWithString:encodedString];
NSURLRequest *req = [NSURLRequest requestWithURL:webURL];
[theWebView loadRequest:req];
});
}
Страницы PDF являются большими. После вызова loadRequest программа вернется к циклу и создаст новый UIWebview.
Я хочу дождаться, пока вызывается webViewDidFinishLoad перед возвратом в цикл.
Есть ли какие-либо решения?
Благодарим за помощь.
Почему вы не вызываете - (void) setImageAtIndex: (NSInteger) index toScrollView: (ImageScrollView *) ScrollView в webViewDidFinishLoad? – HMHero
@ Masaru Kitajima Я думаю, вы должны интегрировать делегата веб-представления и вызвать '[self setImageAtIndex: i toScrollView: imageScrollView];' этот метод из 'webViewDidFinishLoad:' method.take 'i' как глобальный и увеличивать его на каждом' webViewDidFinishLoad'.i думаю, что это сработает. Не используйте для цикла. –
Я не совсем уверен, что вы упомянули. (void) setImageAtIndex: (NSInteger) index toScrollView: (ImageScrollView *) ScrollView предназначен для загрузки PDF в UIWebView, и я хочу дождаться загрузки PDF-файла. –