我创建UIScrollView
并在其中创建多个UIWebViews
以在它们之间滚动
对于内存管理,我在创建时为每个UIWebView
标记提供一个标记,在滚动到下一个标记后,我将其与标记一起删除但仍然存在内存问题和应用程序退出。
任何人都可以更好地了解删除未使用的UIWebView
删除下一个+ 1&以前-1
这是我的代码
注意{我使用ARC}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
// NSLog(@"will ViewDidEndDecelerating ");
// NSLog(@"HI I AM end decelerating ");
if (lastContentOffset < (int)self.scrollView.contentOffset.x) {
if (pageReference < 5) {
pageReference ++;
if (pageReference>1) {
[[self.scrollView viewWithTag:pageReference-1] removeFromSuperview];
// UIWebView*deleted =[[UIWebView alloc]init];
// NSLog(@"delete page number%d ",pageReference-1);
}else{//NSLog(@"exep error");
}
}
if (pageReference>3) {
// NSLog(@">>>>>>>>>4 %d",pageReference);
}else{
[self createWebViewWithTag:pageReference+1];
}
// NSLog(@"iam at te end of deckleration ++ and my page reference is %d",pageReference);
// [[self.scrollView viewWithTag:tag-3] removeFromSuperview];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:pageReference inSection:0];
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
[self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:(0)];
// NSLog(@"page : %d",pageReference);
// [self setupScrollView];
// startTime = mach_absolute_time();
// [self saveData];
}
else if (lastContentOffset > (int)self.scrollView.contentOffset.x) {
// NSLog(@" Move back");
if (pageReference>0) {
pageReference --;
// NSLog(@"iam at te end of deckleration -- and my page reference is %d",pageReference);
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:pageReference inSection:0];
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
[self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:(0)];
// NSLog(@"page : %d",pageReference);
if (pageReference>0) {
// NSLog(@"Create Reference %d",pageReference);
[self createWebViewWithTag:pageReference-1];
}
else{
// NSLog(@"iam not need -1 view ");
}
// startTime = mach_absolute_time();
// [self saveData];
}
else {
// NSLog(@"no Move ");
}
// NSLog(@"page Reference : %d",pageReference);
}else{
//NSLog(@"restricted < 0 ");
}
}
- (void) createNextWebViewWithTag:(int)tag {
// NSLog(@"The Current WebViewTagIn NextView Creation%d",tag);
int tagPlusOne= tag+1 ;
// int tagMinusOne= tag-3 ;
int DimensionXpoint = tagPlusOne*1024;
UIWebView*webview = [[UIWebView alloc] initWithFrame:CGRectMake(DimensionXpoint , 0, 1024, 768)];
webview.tag = tagPlusOne;
// NSLog(@"webView THe Tag%d",webview.tag);
webview.delegate = self;
webview.scrollView.delegate = self;
webview.scrollView.scrollEnabled = NO;
// currentSlide= [NSString stringWithFormat:@"procto_slide%d", tagPlusOne];
// currentSlideReference = [NSString stringWithFormat:@"HemaGel_procto_0%d", tagPlusOne];
// NSString *Currentpath = [[NSBundle mainBundle] pathForResource:currentSlide ofType:@"html"inDirectory:currentSlideReference];
//////////////
// NSURL *currentUrl = [NSURL fileURLWithPath:Currentpath];
// NSURLRequest *Currentrequest = [NSURLRequest requestWithURL:currentUrl];
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"Slide_%d", tagPlusOne] ofType:@"html"inDirectory:[NSString stringWithFormat:@"Slide_%d", tagPlusOne]]]]];
[self.scrollView addSubview:webview];
// UIWebView *deleted = [[UIWebView alloc]init];
/* if (tag>3) {
[[self.scrollView viewWithTag:tag-3] removeFromSuperview];
NSLog(@"webView.Tag %d",webview.tag);
}*/
}
答案 0 :(得分:0)
我使用UIPageViewController它给了我更好的性能并做了所有的事情 谢谢&amp;最好的问候