2010-07-07 6 views
1

J'utilise le UIWebView sur iPad, que j'initialise par le code ci-dessous. Le problème est que la vue n'est jamais affichée en haut de la page juste sous la barre d'état, mais il y a un autre espace 44px (rempli de couleur noire) - pour la barre de navigation, que je ne veux pas afficher. Des conseils sur la façon dont je peux afficher UIWebView sans l'espace 44px?UIWebView sur iPad taille

Merci beaucoup,

BR

Sten

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
CGRect rectApp = [[UIScreen mainScreen] applicationFrame]; 

self.webView = [[[UIWebView alloc] initWithFrame:rectApp] autorelease]; 
self.webView.backgroundColor = [UIColor whiteColor]; 
self.webView.scalesPageToFit = YES; 
self.webView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); 
self.webView.delegate = self; 

[self.view addSubview: self.webView]; 
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.test.com/shop/index.php"]]]; 
} 

Répondre

1

Le problème est que le système de coordonnées de la vue que vous ajoutez à n'est pas le système de coordonnées de la fenêtre ; la vue a déjà été ajustée pour la barre d'état.

Modifier ainsi:

CGRect rectApp = [[UIScreen mainScreen] applicationFrame]; 
rectApp.origin = CGPointZero; 

Ou mieux encore, utilisez self.view.bounds, puisque self.view fait sans doute référence à une vue qui remplit la fenêtre de l'application de toute façon.

+0

Merci! Cela fonctionne parfaitement. – STeN

1

J'aime la réponse de Tony. Quand j'ai rencontré ce problème, j'ai utilisé le générique view.frame = self.view.bounds, dans votre code ce serait écrit:

self.webView.frame = self.view.bounds;