2012-02-28 5 views
2

Я показываю html-письма в своем приложении. Но он не растягивает изображения до полного размера, в то время как приложение apple's mail делает. см. скриншоты ниже. Как яблоко Есть идеи, как достичь этого?UIWebView внутри UIScrollView не отображает контент правильно?

  1. Моя веб-приложений вид

enter image description here

почтовое приложение от Apple

enter image description here

+0

Можете ли вы разместить ссылку на образец веб-страницы? Можете ли вы опубликовать, как вы вставляете этот html-контент в веб-просмотр? – alex

ответ

1

Я знаю, что это не отвечает на вопрос, но компания Apple явно предостерегает от вложения UIWebViews в UIScrollViews в Справочнике класса UIWebView

Important You should not embed UIWebView or UITableView objects in UIScrollView objects. If you do so, unexpected behavior can result because touch events for the two objects can be mixed up and wrongly handled. 

Но для чего это стоит, вы попробовали свойство scalesPageToFit UIWebView?

+0

Я не внедряю UIWebView внутри scrollView. И да, я использую scalePagesToFit = TRUE; –

1

Возможно, вы попытаетесь сыграть с метатаг viewport в HTML. Даже если вы не можете изменить HTML до его загрузки, вы можете добавить/отредактировать этот тег после факта.

Я ответил на вопрос о том, как это сделать здесь:

UIWebView -- load external website, programmatically set initial zoom scale, and allow user to zoom afterwards

0

Не знаете, где у меня есть это, но это было в моих записях.
Вам нужно сделать немного работы JS, чтобы он поместился после его рендеринга.

#pragma mark - 
#pragma mark UIWebViewDelegate methods 
-(void)webViewDidFinishLoad:(UIWebView *)webView{ 
if (webView!=bioWebView)return; 

float h; 

NSLog(@"web view is %f high", bioWebView.frame.size.height); 
NSString *heightString = [bioWebView stringByEvaluatingJavaScriptFromString:@"document.getElementById("body").offsetHeight;"]; 
NSLog(@"web content is %@ high",heightString); 

h = [heightString floatValue] +12.0f; // convert from string to float plus some extra points because calculation is sometimes one line short 

bioWebView.frame = CGRectMake(bioWebView.frame.origin.x, bioWebView.frame.origin.y, bioWebView.frame.size.width, h); 

// get bottom of text field 
h = bioWebView.frame.origin.y + h + 70; // extra 70 pixels for UIButton at bottom and padding. 
[scrollView setContentSize:CGSizeMake(320, h)]; 

/* 

    position button code here.... 

    */ 

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