2012-11-19 118 views
3

我想下載html內容,然後查找它的大小(通過調用javascript函數)。之後,我想將UIWebView幀更改爲該尺寸。而html內容應該填寫整個UIWebViewUIWebView - 更改大小和適合內容

我在這裏閱讀文檔和類似的問題在stackoverflow。沒什麼幫助。我不想打電話重新加載方法並從服務器下載HTML兩次。我得到正確的寬度和高度的HTML,但在更改UIWebView框架大小後,html內容不填充框架。 (下面此代碼在- (void)webViewDidFinishLoad:(UIWebView *)webView稱)

NSNumberFormatter * f = [[NSNumberFormatter alloc] init]; 
[f setNumberStyle:NSNumberFormatterDecimalStyle]; 
NSNumber *width = [f numberFromString:[self.mediaWebView stringByEvaluatingJavaScriptFromString:@"getContentWidth()"]]; 
NSNumber *height = [f numberFromString:[self.mediaWebView stringByEvaluatingJavaScriptFromString:@"getContentHeight()"]]; 

self.mediaWebView.frame = CGRectMake(BORDER_WIDTH, BORDER_WIDTH, _frameWidth, _frameHeight); 
self.mediaWebView.bounds = CGRectMake(0, 0, _frameWidth, _frameHeight); 

初始化代碼:

self.mediaWebView = [[UIWebView alloc] initWithFrame:CGRectMake(BORDER_WIDTH, BORDER_WIDTH, _frameWidth, _frameHeight)]; 
[self.mediaWebView setBackgroundColor:[UIColor clearColor]]; 
[self.mediaWebView setOpaque:FALSE]; 
[self.mediaWebView setUserInteractionEnabled:TRUE]; 
self.mediaWebView.scrollView.scrollEnabled = FALSE; 
self.mediaWebView.scrollView.bounces = FALSE; 
self.mediaWebView.delegate = self; 
self.mediaWebView.contentMode = UIViewContentModeRedraw; 
self.mediaWebView.backgroundColor = [UIColor blackColor]; 


NSString *stringUrl = @""// some URL 

NSURL *url = [NSURL URLWithString:stringUrl]; 
[self.mediaWebView loadHTMLString:[self.questionView.question.mediaHtml description] baseURL:url]; 

self.mediaWebView.scalesPageToFit = TRUE; 

[self addSubview:self.mediaWebView]; 
+0

我發現了它。將屬性scalesPageToFit更改爲FALSE是很有用的。當我使用WebView的幀大小進行播放時,HTML內容沒有改變。所以我開始使用webview的最大尺寸,然後從JS函數獲取正確的大小,並在最終更改框架大小。內容從未縮放(縮放,...),這正是我想要的。 – kraag22

回答

2

正如我在下面問題註釋中所描述。這是enaugh將scalesPageToFit設置爲FALSE

+3

好點+1。但是,您應該認真考慮使用YES/NO而不是TRUE/FALSE。在功能上是相同的,但在Objective C中,您需要將這些值用於BOOL。你可以在這裏閱讀爲什麼:http://stackoverflow.com/questions/6420987/why-does-objective-c-use-yes-no-macro-convention-instead-of-true-false – EsbenB