2013-01-12 1 views
4

어떻게 세 개의 웹보기를 사용하여 여러 HTML 페이지가 스크롤보기에서 50 번 표시되는지 표시 할 수 있습니다. 모든 예제 코드를 참조하십시오. 내 현재 코드는 이것이다. 그것은 메모리 누수를 일으키는 것은 물론, 나는 그것이 어리석은 짓이라는 것을 압니다. 나는 2 일 이상이 붙어있다. 도와주세요. UIWebView Class Reference에 명시된 바와 같이iOS의 여러 웹보기

-(void)AddWebviews 
{ 
    [m_CtrlActivity stopAnimating]; 
    m_CtrlLblProgress.hidden=YES; 
    int divisor = WebViewAddCount % 3; 
    MagazineAppDelegate  *appdelegate    = (MagazineAppDelegate *)[[UIApplication sharedApplication]delegate]; 

    IstructPageDetails *objPageDetails=[appdelegate.m_mutarrPageDetails objectAtIndex:WebViewAddCount]; 
    if (divisor==0) 
    { 
     m_CtrlWebViewone=[[UIWebView alloc]initWithFrame:CGRectMake(768*WebViewAddCount,0,768,1024)]; 
     // m_CtrlWebView.scrollView.delegate=self; 
     // m_CtrlWebView.delegate=self; 
     NSString *m_strMagazineFolder=[[GlobalFunctions GetCachesFolder]stringByAppendingPathComponent:MAGAZINE_FOLDER_NAME]; 
     NSString *finalpath=[NSString stringWithFormat:@"%@/%@/%@/%@",m_strMagazineFolder,appdelegate.m_StrSelectedMagazineUrl,objPageDetails.m_strFolderName, objPageDetails.m_strPageName ]; 
     NSURL *url = [NSURL fileURLWithPath:finalpath isDirectory:NO]; 

     [m_CtrlWebViewone loadRequest:[NSURLRequest requestWithURL:url]]; 

     m_CtrlWebViewone.scrollView.pagingEnabled=YES; 
     m_CtrlWebViewone.scrollView.bounces=NO; 
     m_CtrlWebViewone.scalesPageToFit=YES; 
     m_CtrlWebViewone.backgroundColor=[UIColor clearColor]; 


     self.m_CtrlScrollview.pagingEnabled=YES; 
     [self.m_CtrlScrollview addSubview:m_CtrlWebViewone]; 
     [m_CtrlWebViewone release]; 

    } 
    else if(divisor==1) 
    { 
     m_CtrlWebViewtwo=[[UIWebView alloc]initWithFrame:CGRectMake(768*WebViewAddCount,0,768,1024)]; 
     // m_CtrlWebView.scrollView.delegate=self; 
     // m_CtrlWebView.delegate=self; 
     NSString *m_strMagazineFolder=[[GlobalFunctions GetCachesFolder]stringByAppendingPathComponent:MAGAZINE_FOLDER_NAME]; 
     NSString *finalpath=[NSString stringWithFormat:@"%@/%@/%@/%@",m_strMagazineFolder,appdelegate.m_StrSelectedMagazineUrl,objPageDetails.m_strFolderName, objPageDetails.m_strPageName ]; 
     NSURL *url = [NSURL fileURLWithPath:finalpath isDirectory:NO]; 

     [m_CtrlWebViewtwo loadRequest:[NSURLRequest requestWithURL:url]]; 

     m_CtrlWebViewtwo.scrollView.pagingEnabled=YES; 
     m_CtrlWebViewtwo.scrollView.bounces=NO; 
     m_CtrlWebViewtwo.scalesPageToFit=YES; 
     m_CtrlWebViewtwo.backgroundColor=[UIColor clearColor]; 

     self.m_CtrlScrollview.pagingEnabled=YES; 
     [self.m_CtrlScrollview addSubview:m_CtrlWebViewtwo]; 
     [m_CtrlWebViewtwo release]; 
    } 
    else if(divisor==2) 
    { 
     m_CtrlWebViewthree=[[UIWebView alloc]initWithFrame:CGRectMake(768*WebViewAddCount,0,768,1024)]; 
     // m_CtrlWebView.scrollView.delegate=self; 
     // m_CtrlWebView.delegate=self; 
     NSString *m_strMagazineFolder=[[GlobalFunctions GetCachesFolder]stringByAppendingPathComponent:MAGAZINE_FOLDER_NAME]; 
     NSString *finalpath=[NSString stringWithFormat:@"%@/%@/%@/%@",m_strMagazineFolder,appdelegate.m_StrSelectedMagazineUrl,objPageDetails.m_strFolderName, objPageDetails.m_strPageName ]; 
     NSURL *url = [NSURL fileURLWithPath:finalpath isDirectory:NO]; 

     [m_CtrlWebViewthree loadRequest:[NSURLRequest requestWithURL:url]]; 

     m_CtrlWebViewthree.scrollView.pagingEnabled=YES; 
     m_CtrlWebViewthree.scrollView.bounces=NO; 
     m_CtrlWebViewthree.scalesPageToFit=YES; 
     m_CtrlWebViewthree.backgroundColor=[UIColor clearColor]; 

     self.m_CtrlScrollview.pagingEnabled=YES; 
     [self.m_CtrlScrollview addSubview:m_CtrlWebViewthree]; 
     [m_CtrlWebViewthree release]; 
    } 

    WebViewAddCount++; 


    [self.m_CtrlScrollview setContentSize:CGSizeMake(WebViewAddCount*768, 1004)]; 
} 

답변

1

: 중요

: 당신은 있는 UIScrollView 객체에있는 UIWebView 또는 jQuery과 오브젝트를 포함하지 않아야합니다. 이렇게하면 두 객체에 대한 터치 이벤트가 혼합 될 수 있으며, 잘못 이

1

한 번에있는 ScrollView에 여러 webviews 추가 처리 때문에 예기치 않은 동작 메모리로 이어질 수있는 좋은 생각이 아닌 을 발생할 수 있습니다 ... 누설 한 후 응용 프로그램 crash.So는 가장 좋은 방법은 내가 당신을 제안 할 두 가지 옵션이 necessary.There있는이 때마다 웹보기를로드하는 것입니다

1) 애플은 그냥을 변경해야 UIPageviewController .There라는 프레임 워크를 가지고 UIPageViewControllerTransitionStylePageCurl 컨트롤을 UIPageViewControllerTransitionStylePageSwipe로 변환합니다.

2) Bakers framework을 사용하십시오.

ARC 코드와 비 ARC 코드를 모두 사용할 수 있습니다.

은 당신 :)

+0

빵 굽는 사람을 도움이되기를 바랍니다 ==> https://github.com/germanocaldeira/baker –

+0

이 영업 이익은 무엇을 요구 :) 질문 "할 수 있습니까"없습니다 "해야하는 I"이었다 아닙니다. 나는 유용한 정보이므로 투표를하지는 않겠지 만이 질문을 다루지는 않습니다 :) –