【发布时间】: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