我正在制作一个非常简单的应用来学习Objective-C和Xcode。该应用程序有一个UIButton和一个UIImageView。当用户点击按钮时,图像从右向左以对角线方式向下移动,当它到达屏幕中的某个点时,它会再次返回以重新执行相同的操作,如下图所示:
(使用' if语句')
当我使用iPhone Retina(4英寸)打开iOS模拟器时,它的效果非常好。 问题是当我使用iPhone Retina(3.5英寸)打开模拟器时:
它加载图像并且一切看起来都很好,我按下按钮直到图像到达B点但是当它再生回来时会发生这种情况:
图像向下移动。我不知道为什么会这样做。我整天都在寻找答案,但似乎没什么用。我取消选中自动布局框并自动调整如下:
以下是代码:
File.h
{
IBOutlet UIImageView *imageOne;
}
-(IBAction)Button:(id)sender;
@end
File.m
-(IBAction)Button:(id)sender{
//ImageOne moving down and reappearing
[UIView animateWithDuration:0.1f
animations:^{
imageOne.center = CGPointMake(imageOne.center.x -44, imageOne.center.y +41);
}];
if (imageOne.center.x < -28) {
imageOne.center = CGPointMake(368,487);
}
}
非常感谢任何帮助
提前谢谢!!!
答案 0 :(得分:0)
试试这个:
-(IBAction)Button:(id)sender{
CGPoint startingPoint = CGPointMake(startingXPoint, startingYPoint);
CGPoint destinationPoint = CGPointMake(destinationXPoint, destinationYPoint);
imageOne.center = startingPoint;
[UIView animateWithDuration:0.5f animations:^{
imageOne.center = destinationPoint;
} completion:^(BOOL finished){
imageOne.center = startingPoint;
}];
}