У меня есть метод загрузки нескольких видеороликов youtube в UIWebview, и у меня есть много видеороликов, и когда я запускаю код, я получаю Предупреждение о получении памяти и приложение разбилось. Я попытался это исправить с помощью did received memory waring
, но ее не работает, это метод, который я использую: -Предупреждение о получении памяти при загрузке uibweview
-(void) setScrollView:(UIScrollView *)scrollview :(NSArray *)contentArray{
int x=0;
for(NSDictionary *str in contentArray){
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(x, 0, 123, 123)];
webView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
webView.scrollView.scrollEnabled = NO;
webView.scrollView.bounces = NO;
NSString *link = [str objectForKey:@"UTUBEURL"];
link = [@"http://www.youtube.com/v/" stringByAppendingFormat:link];
NSLog(@"link = %@",link);
NSString *embedHTML = @"\
<html><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0 \">\
<style type=\"text/css\">\
body {\
background-color: transparent;\
color: white;\
}\
</style>\
</head><body width=\"%0.0f\" height=\"%0.0f\" style=\"margin:0\">\
<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
width=\"%0.0f\" height=\"%0.0f\" autostart=\"true\"></embed>\
</body></html>";
NSString* html = [NSString stringWithFormat:embedHTML,webView.frame.size.width, webView.frame.size.height,link, webView.frame.size.width, webView.frame.size.height];
[webView loadHTMLString:html baseURL:nil];
UILabel *title = [[UILabel alloc] initWithFrame:CGRectMake(x,123,200,20)];
[title setFont:[UIFont systemFontOfSize:11]];
[title setBackgroundColor:[UIColor blackColor]];
[title setTextColor:[UIColor whiteColor]];
title.text = [NSString stringWithFormat:@" %@",[str objectForKey:@"DISPLAYTEXT"]];
x += webView.frame.size.width+2;
[scrollview addSubview:webView];
[scrollview addSubview:title];
}
scrollview.contentSize = CGSizeMake(x, scrollview.frame.size.height);
}
я имею около 50 видео здесь, так что я могу сделать, чтобы избежать этого я звоню этот метод в стороне мой viewDidLoad. Есть ли способ сделать это лучше, используя поток, может ли кто-нибудь помочь мне с этим? но у меня нет никаких знаний о потоке на ios.
расПредеЛение много UIWebView довольно дорого – Joshua
Почему вы создаете 50 Webviews?, Cr запустите один WebView и замените URL-адреса, которые будут воспроизводиться только на этом веб-экране. Разве это что-то отличное от вашего требования? – mAc
Вы можете использовать жестов салфетки для просмотра видео, которое будет воспроизводиться на этом веб-просмотре, и в соответствии с ним заменить ваши UILabels тоже. – mAc