我有一个代码,它以随机的间隔创建一个UIImageView
,然后调用一个循环动画的方法将它们移动到屏幕上。
//This is called after an image is created
-(void)loopImage:(UIImageView *)image {
[self moveImage:image];
if (image.frame.origin.y > 300) {
[image removeFromSuperview];
} else {
[self performSelector:@selector(loopImage:) withObject:image afterDelay:1.0f / 60.0f];
}
}
-(void)moveImage:(UIImageView *)image {
image.frame = CGRectMake(image.frame.origin.x, image.frame.origin.y + 3, 20, 20);
}
这完全没问题,因为它做了我想做的事情,但图像的移动并不顺畅。有时候,在屏幕上行程中,它会断断续续并向后移动几个像素(不仅仅是在模拟器上,而是在我的测试设备上,还有iPhone 5s)。有什么方法可以顺畅地将图像向下移动到屏幕上,但仍能检查碰撞吗?
答案 0 :(得分:1)
我认为这里最简单正确的方法是使用[UIView animateWithDuration]
。你认为使用什么并不能保证视图循环中正确的执行顺序。