IOS横屏竖屏问题---2
来源:互联网 发布:linux ps 命令详解 编辑:程序博客网 时间:2024/06/05 17:27
方法一、横屏竖屏时分别加载两个不同的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]; }