UIWebView берет на себя экран при повороте - PullRequest
0 голосов
/ 20 декабря 2010

Я создаю баннер, используя UIWebView и UIViewController.В контроллере я установил shouldAutorotateToInterfaceOrientation, чтобы всегда возвращать YES.В loadView я создаю свой UIWebView и добавляю ему небольшой баннер с помощью CGRectMake.Все работает, когда он добавлен на экран.Проблема возникает при повороте экрана.UIWebView теперь занимает весь экран.Если я выведу его кадр с помощью NSLog, я вижу, что он перезаписывается при повороте, чтобы занять весь экран.Любая идея, как заставить это прекратить делать это?Я чувствую, что упускаю что-то фундаментальное, но не могу понять, что не так.

1 Ответ

0 голосов
/ 11 июля 2011

если вы загружаете UIWebview, при ротации вы должны установить ширину UIWebview равной 480, и это будет сделано при объявлении функции javascript на загружаемой странице, а затем при делегировании

- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{


    if ((toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) || 
        (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight))
    {
            [webView stringByEvaluatingJavaScriptFromString:@"makeWidth(480)"]; 
    }else{
            [webView stringByEvaluatingJavaScriptFromString:@"makeWidth(320)"]; 
    }

note makeWidth (480) - это функция javascript на загружаемой странице, вы должны объявить эту функцию в веб-просмотре и вызвать ее из xcode.

...