无法删除UIWebView

时间:2014-10-01 16:26:24

标签: ios objective-c xcode

我创建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);
    }*/
}

1 个答案:

答案 0 :(得分:0)

我使用UIPageViewController它给了我更好的性能并做了所有的事情 谢谢&amp;最好的问候