iOS如何在屏幕上启动图像并将其设置为屏幕动画

时间:2015-06-07 21:35:09

标签: ios objective-c ios-animations

我正在尝试将图像从屏幕上从左侧滑到屏幕上并停在视图中的中心点。如果可能的话,我想将它保持在y位置(IE图像设置在故事板中)。

我正在阅读本教程,但它很快,我无法在objective-c中进行相同的分配。

http://www.raywenderlich.com/95910/uiview-animation-swift-tutorial

它表示将视图设置在屏幕外(快速):

heading.center.x  -= view.bounds.width

然后动画(快速):

UIView.animateWithDuration(0.5, animations: {
    self.heading.center.x += self.view.bounds.width
})

但是,我无法在目标c中操纵center.x,就像他们在swift中一样。

我尝试通过更改边界而没有运气来调整viewWillAppear中图像的初始位置。

编辑:

以下是我试图将其置于屏幕之外的位置:

self.heading.center = CGPointMake(-200, self.heading.center.y);

无论我如何设置x位置,视图仍会出现在屏幕上。实际上无论我将x位置设置到视图中都不会在x方向上移动。我也试过设置框架

2 个答案:

答案 0 :(得分:1)

视图中心的 x 坐标不能直接在Objective-C中指定。相反,尝试将中心点设置为整体。在您的示例中,这看起来像这样:

[UIView animateWithDuration:0.5 animations:^{
    CGFloat newCenterX = self.heading.center.x + self.view.bounds.size.width;
    self.heading.center = CGPointMake(newCenterX, self.heading.center.y);
}];

答案 1 :(得分:0)

尝试使用CGAffineTransformMakeTranslation:

      [UIView animateKeyframesWithDuration:5
                               delay:0
                               options:UIViewKeyframeAnimationOptionCalculationModeLinear
                               animations:^{

                               view.transform = CGAffineTransformMakeTranslation(550, -40);
                               }];