1

我正在尝试将图像从屏幕上从左侧滑到屏幕上并停在视图的中心点。如果可能的话,我想将它限制在 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
})

但是我不能像他们在 swift 中那样在目标 c 中操作 center.x。

我尝试通过更改边界来调整 viewWillAppear 中图像的初始位置,但没有成功。

编辑:

这是我试图将其定位在屏幕之外的内容:

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

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

4

2 回答 2

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);
}];
于 2015-06-07T22:32:09.657 回答
0

尝试使用 CGAffineTransformMakeTranslation:

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

                               view.transform = CGAffineTransformMakeTranslation(550, -40);
                               }];
于 2017-03-29T01:51:37.257 回答