iOS:重新生成UIImageView

时间:2014-08-25 22:16:47

标签: ios objective-c xcode uiimageview uibutton

我制作了一款非常简单的应用。我有一个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语句执行此操作?

提前谢谢!

1 个答案:

答案 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来实现动画。