在旋转期间动画调整视图大小而不自动调整大小

时间:2010-11-03 21:34:06

标签: iphone ipad

如果我设置了视图的AutoResize蒙版,那么它们将在设备旋转期间与主窗口一起调整大小。

有没有办法通过使用我自己的动画并且没有自动调整来获得相同的平滑性能?

1 个答案:

答案 0 :(得分:2)

是的,您当然可以使用UIView动画来移动元素。

此外,常见的技术是将界面隐藏为

的一部分
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

重新绘制并将其显示为

的一部分
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation

以下是一个例子:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3f];
    self.myTable.hidden = YES;
    ...
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
    [UIView commitAnimations];
}

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    [self redrawInterface];
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3f];
    self.myTable.hidden = NO;
    ... 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
    [UIView commitAnimations];
}