0

まず、この件に関しては多くの質問があり、回答がないように思われることを正確に述べたいと思います。この答えを得る人はまれなはずです。

サブクラスUIImageViewでズームビューとしてを設定しました。UIScrollView

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return self.imageView;
}

作成直後にself.imageViewCGAffineTransformを適用すると、マトリックスが次のように変更されます。

(CGAffineTransform) $0 = {
  (CGFloat) a = 1
  (CGFloat) b = 0
  (CGFloat) c = 0
  (CGFloat) d = 1
  (CGFloat) tx = 0
  (CGFloat) ty = 0
}

(CGAffineTransform) $2 = {
  (CGFloat) a = 0
  (CGFloat) b = 1
  (CGFloat) c = -1
  (CGFloat) d = 0
  (CGFloat) tx = 0
  (CGFloat) ty = 0
}

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView デリゲートメソッドを数回呼び出した後、の変換行列self.imageViewは次のように変更されます。

(CGAffineTransform) $6 = {
  (CGFloat) a = 0
  (CGFloat) b = 1
  (CGFloat) c = -1
  (CGFloat) d = 0
  (CGFloat) tx = 0
  (CGFloat) ty = 0
}

(CGAffineTransform) $7 = {
  (CGFloat) a = 0.130719
  (CGFloat) b = 0
  (CGFloat) c = 0
  (CGFloat) d = 0.130719
  (CGFloat) tx = 0
  (CGFloat) ty = 0
}

ご覧のとおり、0.130がズームスケールですが、回転変換が消えます。
self.imageViewで回転を維持する方法を探しています。

どうもありがとうございました。

4

1 に答える 1

4

少しハックっぽく聞こえるかもしれませんが、私がやろうとしているのは、viewForZoomingInScrollView呼び出しによって返されるUIViewにimageViewを埋め込むことです。

このように、imageViewは、スーパービューが拡大または縮小されている間、回転変換を保持します。

私はUIKitが内部で何をしているのかを推測することを避ける傾向があります

于 2013-03-11T17:55:11.283 に答える