按下按钮时,我有一个高大的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声明不起作用?感谢任何帮助,谢谢
答案 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];
}
}