动画在iPhone上工作但不在iPad上工作

时间:2013-10-22 10:51:38

标签: iphone ios objective-c ipad animation

我有一款适用于iPhone和iPad的应用程序。 所有功能都适用于两种设备,包括仿真器和真实设备。除了一个之外 我正在使用故事板,如果我将iPad和iPhone视图中的所有内容与我正在使用的同一类连接,我会进行三重检查。

一个不起作用的功能是UIImageView的动画。

所以,我有这个图像,我想移动到另一个位置,调用 - viewDidAppear

这是代码:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2];
_fessor.frame = (CGRectMake(_sweden.frame.origin.x+20, _sweden.frame.origin.y-10,  
_fessor.frame.size.width, _fessor.frame.size.height));
[UIView commitAnimations];

// _fessor is ImageView im animating;

// _sweden is the button representing the country I want my _fessor to go to

因此,此代码在iPhone上完美运行(模拟器和真实设备)。 那么为什么它不适用于iPad(同样,模拟器和设备)

此外,如果有人需要更多数据,请告诉我您需要哪些数据。我没有看到还有什么可能导致问题

编辑:The animation DOES work, when I click on a button and call the animation method. But it DOESN'T work when I call it on - viewDidAppear

2 个答案:

答案 0 :(得分:1)

将此块用于动画:

[UIView animateWithDuration:2.0 delay:0. options:UIViewAnimationOptionCurveEaseInOut animations:^{
    _fessor.frame = (CGRectMake(_sweden.frame.origin.x+20, _sweden.frame.origin.y-10,
                                _fessor.frame.size.width, _fessor.frame.size.height));
} completion:^(BOOL finished) {
    // when your animation finished
}];

答案 1 :(得分:-1)

首先检查您传递的所有值是否与ipad大小相关

可能的问题是:你传递的帧尺寸非常适合iPhone,但不适合iPad。

可能有用:

CGRect screenBound = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenBound.size.width;
CGFloat screenHeight = screenBound.size.height;