UIView旋转和Subview(按钮)触摸

时间:2013-12-03 12:37:40

标签: ios iphone objective-c uiview uiviewanimation

我有一个UIView,在此UIView我有8个按钮。我需要每次都旋转UIVIew所以我使用下面的代码:

CABasicAnimation *fullRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
fullRotation.fromValue = [NSNumber numberWithFloat:0];
fullRotation.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)];
fullRotation.duration = 30;
fullRotation.repeatCount = MAXFLOAT;
[self.menuView.layer addAnimation:fullRotation forKey:@"360"];

它可以正确旋转我的视图,但我无法触摸旋转按钮。由于父视图正在旋转且按钮也将旋转,因此Touch无法正常工作。感谢

2 个答案:

答案 0 :(得分:0)

因为您旋转了图层。我认为你不能做你需要的,但尝试使用CGAffineTransform

CGAffineTransform transform //desired transform
[UIView animateWithDuration:time
                 animations:^{menuView.transform = transform;}];

并通过计时器调用它。

答案 1 :(得分:0)

正常视图触摸在动画期间无法正常工作。动画只会使视图看起来像移动。他们的实际坐标不动。

如果您想支持点击对象,则需要使用表示层的hitTest方法在超级视图级别滚动自己的点击处理代码。

我在github上有一个示例项目,展示了如何做到这一点:

iOS Core Animation demo