Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone IOS卡巴斯基化旋转和触摸框架_Iphone_Ios5 - Fatal编程技术网

Iphone IOS卡巴斯基化旋转和触摸框架

Iphone IOS卡巴斯基化旋转和触摸框架,iphone,ios5,Iphone,Ios5,我有一个UIView的子类,它正在使用CABasicAnimation进行旋转。我还希望这个旋转视图能被用户触摸,从而触发一些事件。然而,我发现对我的视图应用旋转似乎会弄乱视图的可触及区域。旋转后视图将正确显示,但似乎只有一半视图是可触摸的。ToucheSBegind方法不会在视图的某些部分激发,即使触摸在视图上很明显。在旋转视图后,我是否需要执行一些操作来更正视图的框架,以便能够正确地与之交互 这是我的轮换代码: CABasicAnimation *fullRotation; fullRota

我有一个UIView的子类,它正在使用CABasicAnimation进行旋转。我还希望这个旋转视图能被用户触摸,从而触发一些事件。然而,我发现对我的视图应用旋转似乎会弄乱视图的可触及区域。旋转后视图将正确显示,但似乎只有一半视图是可触摸的。ToucheSBegind方法不会在视图的某些部分激发,即使触摸在视图上很明显。在旋转视图后,我是否需要执行一些操作来更正视图的框架,以便能够正确地与之交互

这是我的轮换代码:

CABasicAnimation *fullRotation;
fullRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
fullRotation.fromValue = [NSNumber numberWithFloat:0];
fullRotation.toValue = [NSNumber numberWithFloat:angle];
fullRotation.duration = 0.0;
fullRotation.removedOnCompletion = FALSE;
fullRotation.autoreverses = NO;
fullRotation.fillMode = kCAFillModeForwards;
fullRotation.repeatCount = 0;
[self.layer addAnimation:fullRotation forKey:@"rotation"];

通过做一些nslog,我确实可以看到,尽管视图在视觉上看起来不同,但在添加动画后,视图的帧并没有被修改

我最终只是使用CGAffineTransform来进行旋转。只要确保在应用旋转后不修改框架,如果需要移动视图,则应使用view.center而不是view.frame

CGAffineTransform transformRotate = CGAffineTransformMakeRotation(angle);
self.transform = transformRotate;

我最终只是使用CGAffineTransform来进行旋转。只要确保在应用旋转后不修改框架,如果需要移动视图,则应使用view.center而不是view.frame

CGAffineTransform transformRotate = CGAffineTransformMakeRotation(angle);
self.transform = transformRotate;