我制作了一款非常简单的应用。我有一个UIButton和一个UIImageView,每次按下按钮,图像移动x:-44和y:-41。我想要做的是当图像到达屏幕中的某个(x,y)点以在屏幕的其他位置重新生成时。我希望这是有道理的。
这是我的代码:
文件。 ħ
{
IBOutlet UIImageView *ImageOne;
}
-(IBAction)Button:(id)sender;
文件。米
-(IBAction)Button:(id)sender{
//ImageOne moving down the screen
[UIView animateWithDuration:0.1f
animations:^{
ImageOne.center = CGPointMake(ImageOne.center.x -44, ImageOne.center.y +41);
}];
如何使用if语句执行此操作?
提前谢谢!
答案 0 :(得分:1)
这取决于。如果您想在移动完成之前简单地监控位置,那么您可以执行以下操作:
-(IBAction)Button:(id)sender{
CGPoint newCenter = ImageOne.center;
// check the image's position
if (ImageOne.center.x < some_x) {
newCenter.x = some_other_x;
} else if (ImageOne.center.y > some_y) {
newCenter.y = some_other_y;
} else {
newCenter = CGPointMake(ImageOne.center.x -44, ImageOne.center.y +41);
//ImageOne moving down the screen
[UIView animateWithDuration:0.1f
animations:^{
ImageOne.center = newCenter;
}];
}
或者,如果您想在移动过程中捕获并修改位置,则应尝试Key-Value Observing查看.center
更改的时间。
我不确定这个常规的UIView
动画是否适用于KVO
,也许您需要使用Facebook's Pop
animation library来实现动画。