0

私は画像を非常に具体的な方法で比較させようとしています。2UIImageViewつを重ねて、左から右、後ろにドラッグできる縦線があります。ユーザーがこの線をドラッグするとき、上面図が「透明」になるか、その線までトリミングされる必要があります。切り抜きを使用しようとしましたが、非常に遅く不正確で、線を後方にドラッグしたときに切り抜きを解除できませんでした。これを実現する方法を、ある1つのリースポイントが正しい方向に向けることができますか。

4

1 に答える 1

2

これはそれほど難しいことではありませんが、確かに簡単ではありません。私はあなたを正しい方向に向けることができると思います。

CAShapeLayerまず、上部を覆うのに十分な大きさを作成する必要がありますUIImageView。この新しいマスクレイヤーをmask、最上位の画像ビューのレイヤーとして設定します。

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.path = [UIBezierPath bezierPathWithRect:topImageView.bounds].CGPath;
topImageView.layer.mask = maskLayer;

次に、目的の結果を達成するためにpositionのを変更する必要があります。を使用して、垂直線を左から右に、またはその逆にドラッグすることを処理maskLayerしていると想定しています。UIPanGestureRecognizerジェスチャレコグナイザーによってトリガーされるメソッドでは、translationInViewプロパティを検査し、その値を使用してマスクレイヤーxのを変更します。positionこれにより、マスクレイヤーを指で効果的に動かし、上部の画像ビューの一部を非表示にし、下部の画像ビューを下から表示できるようになります。

于 2012-09-09T16:04:10.793 に答える