iphone,ipad横竖屏切换

屏幕切换时,会发送一个通知。只要注册一个通知:

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(doRotateAction:) 
                                             name:UIDeviceOrientationDidChangeNotification 
                                           object:nil];
然后在方法里做操作:

-(void) doRotateAction:(NSNotification *) notification{
    if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortrait 
        || [[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortraitUpsideDown) { 
        NSLog(@">>>portrait"); 
    }else{ 
        NSLog(@">>>landscape"); 
    }
}


如果要在入口文件做切换屏幕,可以判断状态栏的方向:

////////////////////////////////////
//通知委托状态栏已改变,进横竖屏操作
-(void)application:(UIApplication *)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation{
    //清除背景,防止上一次转屏的图像残留
    [imageview setBackgroundColor:[UIColor clearColor]];
    //以下是横竖屏4个方向的切换,注意转屏时,无论是转哪个屏。起点坐标都是在portrait方向的起点(0,0)来计算的
    if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortrait ) { 
        NSLog(@">>>portrait"); //home键在下
        imageview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 20, 768, 44)];
        imageview.backgroundColor = [UIColor redColor];
        [_window addSubview:imageview];
    }else if([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortraitUpsideDown){
        NSLog(@">>>PortraitUpsideDown"); //home键在上
        imageview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 960, 768, 44)];
        imageview.backgroundColor = [UIColor redColor];
        [_window addSubview:imageview];
    }else if([[UIDevice currentDevice] orientation]==UIInterfaceOrientationLandscapeLeft){
        NSLog(@">>>LandscapeLeft"); //home键在左
        imageview = [[UIImageView alloc] initWithFrame:CGRectMake(20, 0, 44, 1024)];
        imageview.backgroundColor = [UIColor redColor];
        [_window addSubview:imageview];
    }
    else if([[UIDevice currentDevice] orientation]==UIInterfaceOrientationLandscapeRight){ 
        NSLog(@">>>LandscapeRight"); //home键在右
        imageview = [[UIImageView alloc] initWithFrame:CGRectMake(704, 0, 44, 1024)];
        imageview.backgroundColor = [UIColor redColor];
        [_window addSubview:imageview];
    }

}



你可能感兴趣的:(object,application,iPhone,ipad)