0

私のアプリには、viewA(緑) と subviewB(赤) の 2 つのビューがあります。私のアプリの初期状態は次のとおりです。 ここに画像の説明を入力

次のコードを使用して、viewA の変換を変更します。

CGFloat scale = 0.4;
self.viewA.layer.sublayerTransform = CATransform3DMakeScale(scale, scale, 1);

その結果、subviewB はスケーリングおよび変換されます

ここに画像の説明を入力

しかし、私のアプリには問題があります: subViewB はまだ viewA の左上隅にある必要がありますが、subviewB は viewA の中心に移動したように見えます。subviewB の原点がまだ (0,0) であるのは奇妙です。 subviewB を左上隅に移動するにはどうすればよいですか?

4

2 に答える 2

1

与えられたコードを試してみてください。

subviewB.transform = CGAffineTransformScale(test.transform, scale, scale);

それが動作します :)

于 2013-05-08T09:38:22.880 に答える
0

スケーリングと自動レイアウトで同じ問題が発生しましたが、uiscrollview で発生しました。最後に CATransform3DMakeScale を使用して、すべての問題を修正しました。

https://github.com/hansdesmedt/AutoLayout-scrollview-scale

これは、AutoLayout で完全に作成されたカスタム ページングを備えた UIScrollView の例であり、長押ししてズームすることでスケーラブル (CATransform3DMakeScale) になります。iOS6、7対応。

于 2013-12-23T10:02:29.540 に答える