ios 6.0 屏幕旋转问题

1.先判断设备是否支持四个方向的旋转。
操作步骤为:选中项目  --》  targets  -->  summary  -->  supported interface orientations  将四个设备的方向选上。

2.查看项目的.plist文件 , 看supported interface orientations 是否有四个方向,有四个就代表支持四个方向了。(home button)

3.ios 6.0 版本要支持四个方向的旋转,还要添加下面的代码:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_6_0
- (BOOL)shouldAutorate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;  //UIInterfaceOrientationMaskAll表示四个方向都支持
}
#endif
4.旋转时,自动调用的方法。旋转操作:
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    NSLog(@"视图旋转之前自动调用");
}

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
    if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
        NSLog(@"螢幕向左橫置.................");
        coreDraw.frame = CGRectMake(0, 0, 480, 300);
        [coreDraw setGraphAndHostingView:CGRectMake(0, 0, 480, 300)];

    }else if (toInterfaceOrientation == UIInterfaceOrientationPortrait){
        NSLog(@"螢幕直立..................");
        coreDraw.frame = CGRectMake(0, 0, 320, 460);
        [coreDraw setGraphAndHostingView:CGRectMake(0, 0, 320, 460)];

    }else if (toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown){
        NSLog(@"螢幕直立,上下顛倒................");
        coreDraw.frame = CGRectMake(0, 0, 320, 460);
        [coreDraw setGraphAndHostingView:CGRectMake(0, 0, 320, 460)];

    }else{
        NSLog(@"螢幕向右橫置.................");
        coreDraw.frame = CGRectMake(0, 0, 480, 300);
        [coreDraw setGraphAndHostingView:CGRectMake(0, 0, 480, 300)];
    }
}

-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    NSLog(@"视图旋转完成之后自动调用");
}

5.还有一个要注意的问题就是,旋转时不能用 addSubview: 方法,直接嵌套view。这样是不能旋转的。
比如:(1).[self.window addSubview:viewController.view];
 (2).self.window.rootViewController = viewController;
第一种方法是不可取的。用第二种方法才能达到旋转的目的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值