检测UIImageView何时完成滚动

时间:2014-05-31 04:28:58

标签: ios objective-c uiimageview

按下按钮时,我有一个高大的UIImageView滚动屏幕。我用一个计时器以特定的速度改变图像的y位置。图像高10,000像素。 这是我的简单代码:

-(void) moveImage {

myImage.center = CGPointMake(myImage.center.x, myImage.center.y +6);

}

-(IBAction)StartGame:(id)sender{

moveImageTimer = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self     selector:@selector(moveImage)userInfo:nil repeats:YES];
[StartGame setHidden:TRUE];
}

这是我在图片完全滚动屏幕时试图停止计时器的内容:

-(void) moveImage {

myImage.center = CGPointMake(myImage.center.x, myImage.center.y +6);

if ([myImage == GPointMake(myImage.center.x, myImage.center.y -568) {
    [moveImageTimer invalidate];
}

这不起作用,但我认为会这样。有人能告诉我为什么IF声明不起作用?感谢任何帮助,谢谢

2 个答案:

答案 0 :(得分:0)

因为你想在图像移动到底角时停止。

    -(void) moveImage {

       CGPoint newPoint= CGPointMake(myImage.center.x, myImage.center.y +6);

        myImage.center = newPoint;
        if ((newPoint.y - (myImage.frame.size.width/2)) >= [UIScreen mainScreen].bounds.size.height)
        {
            [moveImageTimer invalidate];
        }

    }

答案 1 :(得分:0)

你可以查看病情 喜欢if(imageView.center.y> imageView.frame.size.height - self.view.frame.size.height)

这里是imageView.frame.size.height - self.view.frame.size.height因为图像大小是屏幕大小的两倍。你必须设置逻辑

imageView.center = CGPointMake(imageView.center.x,imageView.center.y + 6);

if (imageView.center.y > imageView.frame.size.height - self.view.frame.size.height)
{
    [moveImageTimer invalidate];
}

}