我试图在UIImage上创建一个简单的动画,它必须从位置X = 0开始,并且必须在X =设备宽度的位置结束 我试图在viewDidLoad方法中使用以下代码:
CGRect screenBound = [[UIScreen mainScreen] bounds];
CGSize screenSize = screenBound.size;
CGFloat screenWidth = screenSize.width;
//CGFloat screenHeight = screenSize.height;
for(int x = 0; x < screenWidth; x++)
{
[_camion setFrame:CGRectMake(x, _camion.frame.origin.y, _camion.frame.size.width, _camion.frame.size.height)];
}
但是图像没有移动,我错过了什么吗?
答案 0 :(得分:3)
对于动画,有更好的方法而不是for循环
我试着举个例子:
-(void)viewDidAppear:(BOOL)animated {
CGFloat widthView = self.view.frame.size.width;
[UIView animateWithDuration:2 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
_camion.frame = CGRectMake(widthView, _camion.frame.origin.y, _camion.frame.size.width, _camion.frame.size.height);
}completion:^(BOOL finished){
NSLog(@"animation done!");
}];
}
使用animateWithDuration
,您可以设置动画的持续时间,延迟和类型(在本例中为UIViewAnimationOptionCurveEaseIn),这样您就可以更好,更好地控制最终结果。