ではありません。はprevioslyもう一方とジェスチャーUIImageViewによって回転マージ。 WYSは2つのUIImageViewをマージしようとしたときに、私はクレイジー取得していますWYG
状況:
- 背景UIImageView (userPhotoImageView)
- 、随分挟まと が、私は私の関数を呼び出す
を回転させることができるオーバーレイ UIImageView(productPhotoImageView) UIImages上では、私はそれらを含むUIImageViewからcoordsと新しいストレッチサイズを取ることができます(彼らは私のクラスで合成されています)
- (UIImage *)mergeImage:(UIImage *)bottomImg withImage:(UIImage *)topImg;
多分最も簡単な方法は、次のように新しいCGContextRefトップUIImageViewの層をレンダリングすることになります。
[bottomImg drawInRect:CGRectMake(0, 0, bottomImg.size.width, bottomImg.size.height)];
[productPhotoImageView.layer renderInContext:ctx];
しかし、このように私はprevioslyジェスチャーによって適用される回転効果を失います。
GestureEffectsを再現し、このような文脈で、それを描画するためにUIImageにAffineTransformationを適用しようとしていることになる第二の方法:
UIImage * scaledTopImg = [topImg imageByScalingProportionallyToSize:productPhotoView.frame.size];
UIImage * rotatedScaledTopImg = [scaledTopImg imageRotatedByDegrees:ANGLE];
[rotatedScaledTopImg drawAtPoint:CGPointMake(productPhotoView.frame.origin.x, productPhotoView.frame.origin.y)];
この第二のアプローチの問題は、私は正確にできないんだということですユーザが対話を開始以来RotationGestureをので、次のコールバックを適用した後に0にリセットされるので、この最終的な回転度(上記のコードに充填されるべきアングル・パラメータに)量を取得する現在の回転からのデルタです。
2つ目のUIImageViewsがその瞬間に表示されるので、最も簡単な方法が最初のものになりますが、実際にはまだそれを行うことができませんでした。
imageByScalingProportionallyToSize:productPhotoViewのメソッド定義をアップロードして、statement of mergeImageメソッドをアップロードできますか? –
imageByScalingProportionallyToSize Definitionを入力してください – mouness2020