私はUIView
呼ばれるキャラクターを持っています。そのビュー内で、ユーザーはいくつかUIImageView
をサブビューとして追加できます。ピンチ、移動、回転のジェスチャメソッドを作成しました。ジェスチャメソッドがキャラクタービューに追加されました。
移動には、ジェスチャーtranslationInViewプロパティを使用していますが、正常に機能します。私の問題はスケーリングにあります。
個人のスケーリングUIImageViews
は問題ありませんが、すべてをスケーリングするにはどうすればよいですか?
キャラクタービューを拡大縮小しようとしましたが、すべてのサブビューに比例して細かく拡大縮小できますが、キャラクターを構成するためのキャンバスとして使用しているため、キャラクタービューを変更したくありませんUIImageView
。を使用して文字を変更すると、CGAffineTransformScale
追加したすべての新しいImageViewは同じスケールになります。
私はこれを試しましたが、機能しません:
if ([gesture state] == UIGestureRecognizerStateBegan || [gesture state] == UIGestureRecognizerStateChanged) {
CGFloat customScale = gesture.scale;
for (UIImageView *singleView in [self.devoCharacter subviews]) {
singleView.frame = CGRectMake(singleView.frame.origin.x / customScale, singleView.frame.origin.y /customScale, singleView.frame.size.width /customScale , singleView.frame.size.height /customScale);
[gesture setScale:1];
}
}
このように各ビューのサイズと相対距離を縮小したかったのですが、全体が座標原点から拡大しています。
それから私はこれを試しました:
if ([gesture state] == UIGestureRecognizerStateBegan || [gesture state] == UIGestureRecognizerStateChanged) {
CGFloat customScale = gesture.scale;
for (UIImageView *singleView in [self.devoCharacter subviews]) {
singleView.transform = CGAffineTransformScale(singleView.transform, customScale, customScale);
[gesture setScale:1];
}
}
ただし、これは各ビューを個別にスケーリングし、相対距離を維持しません。とにかく、各ビューを比例してスケーリングするだけですか?相対距離も維持しますか?