2014-01-17 3 views
1

Я создаю читатель epub на ios. Я могу показать epub в uiwebview, но размер epub doest не подходит для uiwebview. Похоже, что файл epub больше и не пропорционален веб-просмотру. Что делать, чтобы изменить его размер? Благодарю.pagebreak on .epub не работает на uiwebview iOS

Это мой код.

vCover = [[UIView alloc] initWithFrame: CGRectMake (0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];

CGRect frame = busyLoad.frame; 
frame.origin.x = self.view.frame.size.width/2 - frame.size.width/2; 
frame.origin.y = self.view.frame.size.height/2 - frame.size.height/2; 
busyLoad.frame = frame; 


[self.view addSubview:vCover]; 
[self.view bringSubviewToFront:vCover]; 
[self.view addSubview:busyLoad]; 
[self.view bringSubviewToFront:busyLoad]; 
[busyLoad startAnimating]; 
int offset = [[NSString stringWithFormat:@"%@", todo.htmOffset]intValue]*webView.bounds.size.height; 

NSLog(@"pageH:%f ", webView.bounds.size.height); 

UIScrollView *scrollview = (UIScrollView *)[webView.subviews objectAtIndex:0]; 
scrollview.contentInset  = UIEdgeInsetsMake(44.0,0.0,44.0,0.0); 
NSString* javascript = [NSString stringWithFormat:@"window.scrollBy(0, %d);", offset]; 
[webView stringByEvaluatingJavaScriptFromString:javascript]; 
NSString *padding = @"document.body.style.margin='50';"; 
[webView stringByEvaluatingJavaScriptFromString:padding]; 
NSString *setTextSizeRule = [NSString stringWithFormat:@"addCSSRule('body', '-webkit-text-size-adjust: %d%%;')", 100]; 
[webView stringByEvaluatingJavaScriptFromString:setTextSizeRule]; 
NSLog(@"DidLoad:%d", offset); 

[webView setHidden:NO]; 



[busyLoad removeFromSuperview]; 
[vCover removeFromSuperview]; 
[busyLoad stopAnimating]; 
+2

вы можете поделиться тем, как вы настройки файла в UIWebView – Retro

+0

Привет спасибо за ответ! Я замечаю, что разрыв страницы после-всегда не работает в uiwebview. У меня есть образец epub-книги, которую можно правильно прочитать ibooks. Благодарю. – user3205472

+0

hi @ user3205472 Как мы можем сломать страницы из файла book.html в UIWebView в iOS, пожалуйста, помогите мне? – BADRI

ответ

1

Привет там !!,

Вы можете сделать пагинацию как ios7 постраничной свойство UIScrollView (т.е. webview.scrollview.pagingEnabled = да) с использованием методов ниже.

- (void)webViewDidFinishLoad:(UIWebView *)webView 
    { 
    [self setPagination:self]; 
    } 

    - (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;')"]; 

     [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]); 
     int pageCount = contentSize.width/webView.frame.size.width; 

    //move to page using offset 
    //   CGPoint point = CGPointMake(0, 0); 
    //   point = CGPointMake(indexOfPage*webView.frame.size.width, 0); 
    //   self.scrollView.contentOffset = point; 

    } 
Смежные вопросы