【问题标题】:Rotating two UiImageViews about one point将两个 UiImageViews 旋转一个点
【发布时间】:2014-07-06 22:23:16
【问题描述】:

我正在开发我的第一个 iOS 应用程序,并希望将两个 UIImageViews A 和 B 围绕它们之间的点 X 旋转。

+-------+
|       |
|   A   |
|       |
|       |
+-------+
   [X]
+-------+
|       |
|   B   |
|       |
|       |
+-------+

到目前为止,我已经尝试制作一个 UIView(下面称为 twoShipView)并将两个 ImageView 放入其中,并将动画应用到这个 UIView,如下所示:

- (void)spinShipsWithOptions:(UIViewAnimationOptions)options {

    [UIView animateWithDuration:5.0f
                      delay:0.0f
                    options:options
                 animations:^{
                     self.twoShipView.transform = CGAffineTransformRotate(self.twoShipView.transform, M_PI / 2);
                 }
                 completion:^(BOOL finished) {
                     if (finished) {
                         if (self.isAnimatingShips) {
                             [self spinShipsWithOptions:UIViewAnimationOptionCurveLinear];
                         } else if (options != UIViewAnimationOptionCurveEaseOut) {
                             [self spinShipsWithOptions:UIViewAnimationOptionCurveEaseOut];
                         }
                     }
                 }
    ];
}

预期结果:视图本身以动画方式围绕其中心旋转。 ImageViews 是船,我希望能够插入其他图像并在此 View 的坐标系中操作它们,所以我想让 View 旋转并让 ImageViews 与 View 的功能保持一致。

实际结果:视图本身不旋转。这两个 ImageView 是这样做的,因为 View 是一个纵向矩形,所以旋转会切断另一个 ImageView。动画也不会发生。

我有什么明显的遗漏吗?

非常感谢! 伊恩

【问题讨论】:

  • 我试过你的代码,包含两个图像视图的外部视图确实旋转了。如果 self.isAnimatingShips 评估为 YES,那么我得到了一个连续的旋转。

标签: ios objective-c uiview uiimageview


【解决方案1】:

看起来我错误地在 viewDidLoad 中调用了开始动画,而不是 viewDidAppear。谢谢大家的时间。

【讨论】:

    猜你喜欢
    • 2010-10-21
    • 1970-01-01
    • 2012-11-21
    • 2014-12-26
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多