我有一款适用于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
答案 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;