在根视图控制器中未调用willAnimateSecondHalfOfRotationFromInterfaceOrientation

时间:2009-05-27 12:27:11

标签: iphone objective-c

我创建了一个rootviewcontroller,然后通过编写

来创建地理敏感
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
    return YES;
}

在rootviewcontroller willAnimateSecondHalfOfRotationFromInterfaceOrientation中调用方法并调整图像大小。

我也有一些观点,但是当我旋转屏幕时,视图会旋转,但图像没有调整大小,虽然我使用了相同的

-(void)willAnimateSecondHalfOfRotationFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation duration:(NSTimeInterval)duration
{
    UIInterfaceOrientation toOrientation = self.interfaceOrientation;
}

方法但它无法调用。 那么,我该怎么办?请帮帮我。

2 个答案:

答案 0 :(得分:5)

这也让我受益匪浅。如果你看一下UIViewController的头文件,我想你会找到答案。其中有评论指出您可以覆盖 EITHER

  • (void)willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:

以下任何

  • (无效)willAnimateFirstHalfOfRotationToInterfaceOrientation:持续时间:
  • (无效)didAnimateFirstHalfOfRotationToInterfaceOrientation:
  • (void)willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration:

显然,如果你覆盖第一个,那就是唯一一个将被调用的人。如果您想要从旋转的每个阶段获得反馈,请使用第二组中的任何一个,但是将第一组中的任何一个移出。

答案 1 :(得分:1)

要考虑的另一件事是你已经覆盖了shouldAutorotateToInterfaceOrientation方法,以允许除了默认的肖像之外的旋转。

例如:

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return YES;
}

如果不这样做,将不会调用您实现的方法。