2009-08-25 4 views
0

Кто-нибудь знает, может ли это решение быть одобрено приложением Apple для отправки?iPhone UIWebView height

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    CGFloat webViewHeight = 0.0f; 
    if (self.subviews.count > 0) { 
     UIView *scrollerView = [self.subviews objectAtIndex:0]; 
     if (scrollerView.subviews.count > 0) { 
      UIView *webDocView = scrollerView.subviews.lastObject; 
      if ([webDocView isKindOfClass:[NSClassFromString(@"UIWebDocumentView") class]]) 
       webViewHeight = webDocView.frame.size.height; 
     } 
    } 
} 

Спасибо. Hami.

ответ

0

Вместо того, чтобы возиться с частными классами, которые могут изменить и разорвать ваше приложение, почему бы не использовать -stringByEvaluatingJavaScriptFromString:, чтобы изменить размер веб-страницы с помощью javascript?

+0

Да. Он должен работать. Но у меня возникла огромная проблема, когда ориентация изменилась. Когда я использую метод уведомления, это уведомление возникает до изменения макета приложения. Итак, stringByEvaluatingJavaScriptFromString возвращает неправильные значения. Я попытался добавить задержку перед вызовом stringByEvaluatingJavaScriptFromString, и он работает. Но задержка - не очень точный метод :) Спасибо в любом случае – Hamiseixas

+0

Не думаю, что я понимаю, что вы имеете в виду здесь о -stringByEvaluatingJavaScriptFromString, возвращающем неправильные значения. Я хочу использовать его для фактического изменения размера окна javascript в ответ на изменение ориентации, а не спросить, каков его размер. Он ничего не должен возвращать. –

+0

OP хочет определить высоту UIWebView, а не изменять его. Думаю, он хочет внедрить UIWebView в UITableViewCell. – NewbiZ

7

Реализуйте метод делегата UIWebViewDidfinishLoad и использовать следующий код

Здравствуйте,

Вы можете использовать следующие методы, чтобы решить вашу проблему.

Для получения pageOffset:

INT pageYOffset = [[webViewObj stringByEvaluatingJavaScriptFromString: @ "window.pageYOffset"] intValue];

Для получения полной высоты прокрутки веб-страницы:

INT scrollHeight = [[webViewObj stringByEvaluatingJavaScriptFromString: @ "document.documentElement.scrollHeight"] intValue];

Для прокрутки веб-страницы к конкретному смещение:

[webViewObj stringByEvaluatingJavaScriptFromString: [NSString stringWithFormat: @ "document.body.scrollTop =% D", scrollHeight]];