IOS横屏竖屏有关问题-2
IOS横屏竖屏问题---2
方法一、横屏竖屏时分别加载两个不同的view,手写view
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) { [landscape removeFromSuperview]; [self.view addSubview:portrait]; } if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) { [portrait removeFromSuperview]; [self.view addSubview:landscape]; } } // Implement loadView to create a view hierarchy programmatically, without using a nib. - (void)loadView { UIControl *back = [[UIControl alloc] initWithFrame:[[UIScreen mainScreen]bounds]]; back.backgroundColor = [UIColor grayColor]; self.view = back; [back release]; } // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. - (void)viewDidLoad { [super viewDidLoad]; portrait = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 300, 440)]; portrait.backgroundColor = [UIColor yellowColor]; // [portrait addButton]; landscape = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 460, 280)]; landscape.backgroundColor = [UIColor greenColor]; [self.view addSubview:portrait]; } // Override to allow orientations other than the default portrait orientation. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations. NSLog(@"heheh"); return NO; }
方法二、在一个XIB里面添加两个不同的view,只用改变两个不同view里面控件尺寸,动作事件是一样的
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) { [self.landscapeView removeFromSuperview]; [self.view addSubview:self.portraitView]; } if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) { [self.portraitView removeFromSuperview]; [self.view addSubview:self.landscapeView]; } } - (void)viewDidLoad { [super viewDidLoad]; [self.view addSubview:self.portraitView]; }