2012-02-20 3 views
0

У меня есть образец проекта, где я создаю пользовательский UIViewController.UIView с проблемами поворота

#import "ViewController.h" 

@implementation ViewController 

@synthesize webViews = _webViews; 
@synthesize webView = _webView; 

- (void)setWebView:(UIWebView *)webView { 
    if (webView!=_webView) { 
     [self.webView removeFromSuperview]; 
     _webView = nil; 
     _webView = webView; 
     [self.view addSubview:self.webView]; 
     [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"]]]; 
    } 
} 

- (IBAction)newWebView:(id)sender { 
    self.webView = [self.webViews objectAtIndex:1]; 
} 

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 

    UIWebView *webView1 = [[UIWebView alloc] initWithFrame:self.view.bounds]; 
    webView1.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
    UIWebView *webView2 = [[UIWebView alloc] initWithFrame:self.view.bounds]; 
    webView2.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
    self.webViews = [NSArray arrayWithObjects: webView1, webView2, nil]; 

    self.webView = [self.webViews objectAtIndex:0]; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return YES; 
} 

@end 

Два UIWebView «ы создаются внутри viewWillAppear:animated и хранятся в массиве - и чем первый UIWebView добавляется к подвид из self.view. При нажатии кнопки на панели навигации первый из UIWebView будет удален из подвью, а следующий будет добавлен.

Проблема заключается в том, что если я запускаю приложение в ландшафте (как iPhone, так и iPad) после второго UIWebView, WebView не заполняет весь экран. Зачем?

enter image description here

Вы можете скачать небольшой образец проекта здесь: http://uploads.demaweb.dk/WebView.zip.

ответ

1

Я не знаю почему, но это внутри метода действия будет делать трюк ...

UIWebView *newWebView=[[UIWebView alloc] init]; 
    newWebView=[self.webViews objectAtIndex:1] ; 
    newWebView.frame=self.view.frame; 
    self.webView = newWebView; 

надеюсь, что это помогает ..:/

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