我正在以这种方式旋转UIImageView:
-(IBAction)rotateImageView:(id)sender{
photoView.transform = CGAffineTransformRotate(photoView.transform, M_PI);
}
如您所见,图像可以向上或向下。是否可以检测图像是上升还是下降,以便执行以下操作:
if(image is up)....
答案 0 :(得分:11)
如果您只是想知道图像是否使用仿射变换进行了旋转,正如您的问题所暗示的那样,您可以这样做:
if (CGAffineTransformIsIdentity(photoView.transform)) {
// not rotated
...
} else {
// rotated
...
}
如果要检查特定轮换,请执行以下操作:
CGAffineTransform t = CGAffineTransformMakeRotation(M_PI);
if (CGAffineTransformEqualToTransform(photoView.transform, t)) {
// rotated by M_PI
...
}
请注意,只有在旋转变换的同时不对视图应用OTHER仿射变换时,上述两种解决方案才有效。如果您还要应用其他变换,也许最好只跟踪变量中的旋转状态。
答案 1 :(得分:0)
您可以检查photoView
的角度,如果它是0.00表示它的向上,如果它的3或3.13或任何接近的值,则表明它已经向下。 (你可以记录下来的确切值。)
CGFloat angle = [(NSNumber *)[photoView valueForKeyPath:@"layer.transform.rotation.z"] floatValue];
NSLog(@"%f", angle);
答案 2 :(得分:0)
快捷键4
if transform.isIdentity { }