개발하고있는 잡지 종류의 iPad 앱을 실험 중이며 메모리 문제가 발생했습니다. UIScrollView에는 여러 개의 UIWebView가 있습니다. 모든 UIWebView는 html 파일 소스의 각 html 페이지를 표시합니다. 불행히도 일단 내가 볼 수 있기를 원하기 때문에 일단 app이로드되고 백그라운드에서 모든 HTML 페이지를 자바 스크립트와 이미지로로드하는 대신 웹 뷰를 처리하기위한 솔루션을 찾지 못했습니다. 나는 그들을 통해 슬쩍, hovewer 나는 30 패널과 응용 프로그램에서 휴식 시간에 "받은 메모리 경고"메시지가 나타납니다.UIScrollView에 여러 개의 UIWebView-s가 있습니다.
나는 웹보기를 표시하기 위해 사용하는 코드는 다음과 같습니다
NSInteger numberOfViews = 47;
for (int i = 0; i < numberOfViews; i++) {
CGFloat yOrigin = i * 768;
DetailViewController *detailViewController2 = [[DetailViewController alloc] initWithNibName:@"Detail" bundle:nil];
[detailViewController2.view setFrame:CGRectMake(yOrigin, 0, 768, 1024)];
detailViewController2.view.clipsToBounds = YES;
[scroll.view insertSubview:detailViewController2.view atIndex:0];
}
scroll.scrollView.contentSize = CGSizeMake(768 * numberOfViews,1004);
scroll.pageControl.numberOfPages = numberOfViews;
self.view.clipsToBounds = YES;
self.view.clearsContextBeforeDrawing = YES;
CGRect frame;
frame.origin.x = scroll.scrollView.frame.size.width * scroll.pageControl.currentPage;
frame.origin.y = 0;
frame.size = scroll.scrollView.frame.size;
[scroll.scrollView scrollRectToVisible:frame animated:NO];
self.scrollViewController = scroll;
[self.view insertSubview:scroll.view atIndex:0];
- (void)dealloc {
[scrollViewController release];
[tableOfContentsViewController release];
[portrait release];
[tableOfContents1 release];
[start release];
[super dealloc];
}
HTML 콘텐츠를 표시하는 코드는 DetaildViewController 내부 :
NSString *htmlPath = [[NSBundle mainBundle] pathForResource:htmlfilename
ofType:@"html"
inDirectory:@"/htdocs" ];
NSString *html = [NSString stringWithContentsOfFile:htmlPath
encoding:NSUTF8StringEncoding
error:nil];
web.delegate = self;
[web setMultipleTouchEnabled:YES];
[web loadHTMLString:html
baseURL:[NSURL fileURLWithPath:
[NSString stringWithFormat:@"%@/htdocs/",
[[NSBundle mainBundle] bundlePath]]]];
- (void)dealloc {
//---release the memory used by the property---
[page release];
[web setDelegate:nil];
[web stopLoading];
[web release];
[orientation release];
[page release];
[super dealloc];
}
문제는 내가 그들을로드 할 수있는 방법입니다 부드럽게 UIScrollView의 backround에서 패널이 뷰포트로 튀어 오면 javascript 만 실행합니다. html 페이지로 60 개가 넘는 웹 뷰를 표시 할 계획입니까?
웹 비디오보기로 다시 연결되는 링크가 있습니까? –