2013-08-12 3 views
0

전자 책 리더를 구현하기 위해 UIPageViewController를 사용하고 싶습니다.ePub 리더에서 uipageviewcontroller를 설정하십시오.

내가 노래하는 데모는 AePubReader입니다.

UIPsgeViewController를 사용하여 실제 페이지 넘기기 효과를 구현하는 방법. 설정 페이지의 색인을 추가하는 방법

동안 차례 페이지 ....

다음

다음 페이지와 이전 페이지 방법 :

- (void) gotoNextPage { 
if(!paginating){ 
    if(currentPageInSpineIndex+1<pagesInCurrentSpineCount){ 
     [self gotoPageInCurrentSpine:++currentPageInSpineIndex]; 
    } else { 
     [self gotoNextSpine]; 
    }  
} 
} 

- (void) gotoPrevPage { 
if (!paginating) { 
    if(currentPageInSpineIndex-1>=0){ 
     [self gotoPageInCurrentSpine:--currentPageInSpineIndex]; 
    } else { 
     if(currentSpineIndex!=0){ 
      int targetPage = [[loadedEpub.spineArray objectAtIndex:(currentSpineIndex-1)] pageCount]; 
      [self loadSpine:--currentSpineIndex atPageIndex:targetPage-1]; 
     } 
    } 
} 
} 

감사합니다 ....

+0

안녕 데니을 다음과 같이 단지 HTML 렌더링 후 척추의 페이지는 .I이 한 웹보기 당신은 당신에게 응답을 얻었다 않았다 질문 또는 어떻게 해결 했습니까? 나는 비슷한 개발을하고, UIPageViewController를 사용하여 epub 책을 보여주고 싶다. –

답변

0

당신의 번호를 찾을 수 있습니다

- (void) setPagination:(UIWebView *) webView 
{ 
    NSString *varMySheet = @"var mySheet = document.styleSheets[0];"; 

    NSString *addCSSRule = @"function addCSSRule(selector, newRule) {" 
    "ruleIndex = mySheet.cssRules.length;" 
    "mySheet.insertRule(selector + '{' + newRule + ';}', ruleIndex);" // For Firefox, Chrome, etc. 
    "}"; 

    NSString *insertRule1 = [NSString stringWithFormat:@"addCSSRule('html', 'height: %fpx; -webkit-column-gap: 0px; -webkit-column-width: %fpx;')", webView.frame.size.height, webView.frame.size.width]; 
    NSString *insertRule2 = [NSString stringWithFormat:@"addCSSRule('p', 'text-align: justify;')"]; 
    //NSString *setTextSizeRule = [NSString stringWithFormat:@"addCSSRule('body', '-webkit-text-size-adjust: %d%%;')", currentTextSize]; 

    [webView stringByEvaluatingJavaScriptFromString:varMySheet]; 

    [webView stringByEvaluatingJavaScriptFromString:addCSSRule]; 

    [webView stringByEvaluatingJavaScriptFromString:insertRule1]; 

    [webView stringByEvaluatingJavaScriptFromString:insertRule2]; 


    CGSize contentSize = CGSizeMake([[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollWidth;"] floatValue], 
            [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"] floatValue]); 
    self.pageVO.chapterVO.pageCountInChapter = contentSize.width/webView.frame.size.width; 

// NSLog(@"content width : %f ,frame width : %f ,my page count : %f",contentSize.width,webView.frame.size.width,contentSize.width/webView.frame.size.width); 
    CGPoint point = CGPointMake(0, 0); 
    if([self checkIsPageIndexOutOfRange]) 
    { 
     //after decreasing font size page will be left blank 
     [self.pageVO setIndexOfPage:self.pageVO.chapterVO.pageCountInChapter-1]; 
     [_myDelegate myWebViewOnPageOutOfRange]; 
    } 
    else 
    { 

     if([self.pageVO getIndexOfPage] ==PAGE_INDEX_GREATER_THAN_PAGE_COUNT) 
     { 
      //load last page of chapter 
      [self.pageVO setIndexOfPage:self.pageVO.chapterVO.pageCountInChapter-1]; 
     } 

     if([self.pageVO getIndexOfPage] !=GET_PAGE_INDEX_USING_WORD_ID) 
     { 
      point = CGPointMake([self.pageVO getIndexOfPage]*webView.frame.size.width, 0); 
      self.scrollView.contentOffset = point; 
     } 
    } 
    [_myDelegate myWebViewDidLoadFinish]; 
} 
관련 문제