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];
    }

}



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值