我有代码
-(BOOL) shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[super willAnimateRotationToInterfaceOrientation: toInterfaceOrientation duration: duration];
deviceOrientation = toInterfaceOrientation;
if(deviceOrientation == UIInterfaceOrientationPortrait)
{
curPageSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height-STATUS_BAR_HEIGHT);
}
else if(deviceOrientation == UIInterfaceOrientationLandscapeLeft || deviceOrientation == UIInterfaceOrientationLandscapeRight)
{
curPageSize = CGSizeMake([UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width-STATUS_BAR_HEIGHT);
}
[self correctViews:curPageSize];
}
此方法在ModalViewController中定义... 当我旋转设备时,程序没有响应willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration ...
我该怎么办?!
答案 0 :(得分:1)
尝试将代码调整为类似的东西......我已经在许多应用中成功使用了这种方法。快乐的编码!
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
//Landscape
self.ViewL.frame = CGRectMake(0, 0, 1024, 728);
self.ViewL.hidden=NO;
self.ViewP.hidden=YES;
}
else
{
//Portrait
self.ViewP.frame = CGRectMake(0, 0, 768, 955);
self.ViewP.hidden=NO;
self.ViewL.hidden=YES;
}
}