2012-03-12 3 views
0

저는 UIWebView를 처음 접했고 특히 stringByEvaluatingJavaScriptFromString 메서드를 사용했습니다. 내 layoutSubviews에서 프레임 크기를 얻기 위해 webview를 호출합니다.UIWebView stringByEvaluatingJavaScriptFromString이 iOS 5에서 작동하지 않습니다.

[self.body setFrame:CGRectMake(10.0f,10.0f,320.0f,[[_body stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] floatValue])]; 

높이를 찾으려고하지만 텍스트 문자열로 정확한 높이를 제공하지 않는보기에 많은 공간을 남깁니다. 위의 코드는 iOS 4에서 완벽하게 작동하며 iOS 5에서는 작동하지 않습니다.

iOS 5에서 작동하려면 다음을 변경할 수있는 다른 방법이 있습니까? 먼저

답변

0

자체에 자바 스크립트를 평가 :

NSString* result = [_body stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"]; 
NSLog(@"My JS is returning %@",result); 

이 올바른 값을 제공해야합니다. JS 엔진이 4.0에서 5.0으로 수정되어 다른 방식으로 처리 될 수 있다고 생각합니다.

+0

예 올바른 값을 제공하고 있습니다. 그러나 JS 엔진이 4.0에서 5.0으로 변경된다는 것은 무엇을 의미합니까? 실제로 두 개의 다른 하위 뷰에서 호출되는 두 개의 문자열이 있습니다. – Change

+0

이것은'document.body.offsetHeight'에 의해 제공된 값이 변경되었을 수 있음을 의미합니다. NSLog()가 올바른 값을 표시하면,'stringByEvaluatingJavascriptFromString' 메쏘드 **가 ** 작동하고 당신의 문제는'self.body'의 위치에 의존합니다. – Tim

+0

iOS 4에서 제대로 작동하기 때문에 본문이 올바르게 배치되었다고 생각합니다. iOS 5에서는 작동하지 않습니다. – Change

관련 문제