以编程方式更改UIImage的位置

时间:2014-12-17 16:29:40

标签: ios objective-c

我试图在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)];
}

但是图像没有移动,我错过了什么吗?

1 个答案:

答案 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),这样您就可以更好,更好地控制最终结果。