У меня есть UIViewController один UIWebView в нем.Мне бы хотелось, чтобы UIWebView располагался в центре экрана iPad в альбомном и портретном режимах.Итак, я реализовал это так:
// UIViewController
// InfoGraphicView is the UIWebView
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Overriden to allow any orientation.
return YES;
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration {
if (toInterfaceOrientation == UIInterfaceOrientationPortrait ||
toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {
[self layoutPortrait];
} else {
[self layoutLandscape];
}
}
- (void)layoutLandscape {
NSLog(@"Layout Landscape");
infoGraphicView.frame = CGRectMake(100, 100, 936, 700);
}
- (void)layoutPortrait {
NSLog(@"Layout Portrait");
infoGraphicView.frame = CGRectMake(100, 100, 700, 936);
}
Однако, это не так, как я ожидал.В приведенном выше коде я ожидал бы, что он UIWebView будет 100px (или точки, или что-то еще, что единица измерения) от верха и слева.Но это не так.В портретном режиме он отображается заподлицо с верхним левым краем экрана, а в альбомном режиме в левом верхнем углу он выглядит частично за кадром.
Если я установлю рамку как CGRectMake(-100, 100, 700, 936)
, тогда я получу ее в центре экрана, как мне хотелось бы, но я понятия не имею, почему.
Как обычно, скорее всего, я что-то упускаю из виду, но не могу понять.Любая помощь с благодарностью, как всегда.