在viewcontroller里加上这句:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarOrientationChange:) name:UIDeviceOrientationDidChangeNotification object:nil];//屏幕旋转的通知
在通知的方法里加上这句:
-(void)statusBarOrientationChange:(NSNotification*)no{ NSDictionary* ntfDict = [no userInfo]; self.collectionView.frame = CGRectMake(0, 0, DF_WIDTH, DF_HEIGHT);//如果要重置view的大小的话,一定要加上这句 UIDeviceOrientation interfaceOrientation = [UIDevice currentDevice].orientation; if (interfaceOrientation == UIDeviceOrientationPortrait || interfaceOrientation == UIDeviceOrientationPortraitUpsideDown) { //翻转为竖屏时 count = 3; [self.collectionView reloadData]; }else if (interfaceOrientation==UIDeviceOrientationLandscapeLeft || interfaceOrientation == UIDeviceOrientationLandscapeRight) { //翻转为横屏时 count = 5; [self.collectionView reloadData]; }}
更全总结: :http://blog.csdn.net/lqq200912408/article/details/51088987