码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 工程默认只允许竖屏,在单独界面进行横竖转换,屏幕旋转

时间:2017-03-25 19:04:22      阅读:580      评论:0      收藏:0      [点我收藏+]

标签:duration   hone   port   scale   app   make   屏幕   横竖屏   base   

只含有 。关于横竖屏的代码

 

#import "InspectionReportViewController.h"

#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)

#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)
@interface InspectionReportViewController ()<UIWebViewDelegate>
{
    UIWebView *webview;

    UIButton * back;
 
}
@end

@implementation InspectionReportViewController

-(BOOL)shouldAutorotate{
    
    return NO;
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
    // 如果该界面需要支持横竖屏切换
    return UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskPortrait;
    // 如果该界面仅支持横屏
    // return UIInterfaceOrientationMaskLandscapeRight;
}

-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
  
}
-(void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
   
}

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

[self CreatUI];
 
    //横屏同志UIApplicationDidChangeStatusBarFrameNotification   UIDeviceOrientationDidChangeNotification
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(deviceOrientationDidChange) name:UIDeviceOrientationDidChangeNotification object:nil];
}

-(void)CreatUI{
    
    self.view.backgroundColor = [UIColor blackColor];
    
    webview = [[UIWebView alloc] initWithFrame:self.view.bounds];
    webview.backgroundColor = [UIColor blackColor];
    
    [webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://60.205.188.204:8087/WebDcmviewer/dcmviewer.html?org_code=%@&check_id=%@",_org_code,_check_id]]]];

    webview.scalesPageToFit = YES;
    webview.scrollView.scrollEnabled = NO;
    [self.view addSubview:webview];
    
  
     back = [myButton buttonWithType:UIButtonTypeCustom frame:CGRectMake(ScreenWidth-IPHONEWIDTH(120), ScreenHeight-IPHONEHIGHT(100), IPHONEWIDTH(50), IPHONEHIGHT(50)) tag:1 image:@"ic_history_ct_return" andBlock:^(myButton *button) {
        
        [self.navigationController popViewControllerAnimated:YES];
        
        
    }];

    [self.view addSubview:back];
    
    
}



//横屏
- (void)deviceOrientationDidChange
{
    NSLog(@"deviceOrientationDidChange:%ld",(long)[UIDevice currentDevice].orientation);
    
    if([UIDevice currentDevice].orientation == UIDeviceOrientationPortrait) {
        
        [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
        
        [UIView animateWithDuration:0.1f animations:^{
            
            self.view.transform = CGAffineTransformMakeRotation(0);
       self.view.bounds = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
      
            webview.frame = self.view.bounds;
            
            back.frame = CGRectMake(SCREEN_WIDTH-IPHONEWIDTH(80), SCREEN_HEIGHT-IPHONEHIGHT(100), IPHONEHIGHT(60), IPHONEHIGHT(60));
            
   
        }];

        
       
        
        //注意: UIDeviceOrientationLandscapeLeft 与 UIInterfaceOrientationLandscapeRight
    } else if ([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeLeft ) {
        
        [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
      
        [UIView animateWithDuration:0.1f animations:^{
            
            self.view.transform = CGAffineTransformMakeRotation(M_PI_2);
            
            self.view.bounds = CGRectMake(0, 0, SCREEN_HEIGHT, SCREEN_WIDTH);

            webview.frame = self.view.bounds;
            
            back.frame = CGRectMake(SCREEN_WIDTH-IPHONEWIDTH(80), SCREEN_HEIGHT-IPHONEHIGHT(100), IPHONEHIGHT(60), IPHONEHIGHT(60));
   
            
        }];

        

       
    }else if ( [UIDevice currentDevice].orientation== UIDeviceOrientationLandscapeRight){
        
        
        [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft];
        
        [UIView animateWithDuration:0.1f animations:^{
            
            self.view.transform = CGAffineTransformMakeRotation(-M_PI_2);
            
         self.view.bounds = CGRectMake(0, 0,SCREEN_HEIGHT, SCREEN_WIDTH);
 
            webview.frame = self.view.bounds;
            
            back.frame = CGRectMake(SCREEN_WIDTH-IPHONEWIDTH(80), SCREEN_HEIGHT-IPHONEHIGHT(100), IPHONEHIGHT(60), IPHONEHIGHT(60));


        }];
    }
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end

 

iOS 工程默认只允许竖屏,在单独界面进行横竖转换,屏幕旋转

标签:duration   hone   port   scale   app   make   屏幕   横竖屏   base   

原文地址:http://www.cnblogs.com/xujiahui/p/6617969.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!