Я хотел бы знать, в чем разница между этими двумя строками кода?
self.view.frame = CGRectMake(0, 0, 320, 480);
self.view.superview.frame = CGRectMake(0, 0, 800, 900);
, и я хочу изменить рамку вида, когда изменится моя ориентация, потому что это изменит положение метоки я хочу, чтобы они были посередине экрана, кто-нибудь может направить меня?
Я использую следующий метод делегата для ориентации, но он не работает с
self.view.frame
, но он работаетХорошо, следующая строка
self.view.superview.frame
См. следующий код
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
//return (interfaceOrientation == UIInterfaceOrientationPortrait);
if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
NSLog(@"LEFT");
self.view.frame = CGRectMake(100, 0, 480, 320);
NSLog(@"Show self.view.frame: %@", NSStringFromCGRect(self.view.frame));
// self.view.superview.frame = CGRectMake(-50, -70, 800, 900);
[button setFrame:CGRectMake(340, 320, 100, 30)];
}
if (interfaceOrientation == UIInterfaceOrientationLandscapeRight) {
NSLog(@"RIGHT");
self.view.frame = CGRectMake(0, 0, 320, 480);
NSLog(@"Show self.view.frame: %@", NSStringFromCGRect(self.view.frame));
//self.view.superview.frame = CGRectMake(10, 90, 800, 900); //It is working if I will uncomment it
[button setFrame:CGRectMake(250, 300, 100, 30)];
}
if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {
self.view.frame = CGRectMake(0, 0, 320, 480);
//self.view.superview.frame = CGRectMake(0, 0, 800, 900);//It is working if I will uncomment it
[button setFrame:CGRectMake(250, 400, 100, 30)];
}
return YES;
}