ios 程序窗口适应设备方向改变

 
//在初始化里注册窗口改变通知,设备窗口改变会发送此通知
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

if (self) {

    [[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(change:) name:UIDeviceOrientationDidChangeNotification object:nil];

}

returnself;

}

-(void) change:(NSNotification*)nt

{

CGFloat width = [[UIScreen mainScreen]bounds].size.width * [[UIScreen mainScreen]scale];

CGFloat height = [[UIScreen mainScreen]bounds].size.height * [[UIScreen mainScreen]scale]; //乘以缩放系数



UIDeviceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;

switch (orientation) {

  case UIDeviceOrientationPortrait:

  case UIDeviceOrientationPortraitUpsideDown:

    self.view.frame = CGRectMake(0, 0, width, height);

    break;

  case UIDeviceOrientationLandscapeLeft:

  case UIDeviceOrientationLandscapeRight:

    self.view.frame = CGRectMake(0, 0, height, width);

    break;

  default:

break;

}



posted on 2011-12-02 16:10  110440  阅读(707)  评论(0编辑  收藏  举报

导航