9

私はこの方法で UIImageView を回転させています:

-(IBAction)rotateImageView:(id)sender{
photoView.transform = CGAffineTransformRotate(photoView.transform, M_PI);
}

ご覧のとおり、画像は上または下のいずれかです。次のようなことを行うために、画像が上か下かを検出する可能性はありますか:

if(image is up)....
4

3 に答える 3

11

質問が示すように、アフィン変換を使用して画像が回転されているかどうかを確認したいだけの場合は、次のようにすることができます。

if (CGAffineTransformIsIdentity(photoView.transform)) { 
    // not rotated
    ...
} else {
    // rotated
    ...
}

特定の回転を確認したい場合は、次のようにします。

CGAffineTransform t = CGAffineTransformMakeRotation(M_PI);
if (CGAffineTransformEqualToTransform(photoView.transform, t)) {
    // rotated by M_PI
    ...
}

上記の 2 つのソリューションは、回転変換と同時にビューに OTHER アフィン変換を適用しない場合にのみ機能することに注意してください。他の変換も適用している場合は、変数で回転状態を追跡するだけの方がよいでしょう。

于 2013-01-30T20:30:10.887 に答える
1

の角度を確認できます。0.00 のphotoView場合は上を意味し、3 または 3.13 またはそれに近い値の場合は下を示します。(ダウンの正確な値をログに記録できます)。

CGFloat angle = [(NSNumber *)[photoView valueForKeyPath:@"layer.transform.rotation.z"] floatValue]; NSLog(@"%f", angle);

于 2016-02-29T05:39:46.553 に答える