1

我想知道UIViewControllers旋转更改后我的视图将具有的新宽度,但我需要此信息已经在

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

方法,所以我无法访问 frame 或 bounds 属性。

我尝试使用图层属性presentationLayermodelLayer,但没有找到正确的解决方案。

如果有人知道解决方案或可以提供一些思考,那就太好了。

4

1 回答 1

0

我发现了问题!

我使用的方法被调用到早期:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

相反,我知道使用这个:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
{
    CGRect frame = [self.view.window convertRect:self.view.frame fromView:self.view];
    float newWidth = frame.size.width;

    // Doing my animation stuff...
}

这使我能够拥有正确的新宽度并正确地为我的视图设置动画。

于 2013-04-24T09:25:11.587 回答