1

プログラムで作成したUIImageViewがありますか?initWithImage を起動し、スケーリングのパラメーターを UIViewContentModeScaleToFill に設定すると、魅力的に機能します。私は一日中スケーリングし、気まぐれにUIImageViewのさまざまな小さな「拇印」サイズのバージョンを作成できますが、UIImageViewにサブビューを追加してから、幸せな新しい親をスケーリングしようとすると、子サブビューはスケーリングしません! 周りを見回したところ、parentView の setAutoresizingSubviews ブール値を true に有効にして (私が行った)、次のように呼び出す必要があることがわかりました。

ChildView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;

私もやった...親ビューを拡大縮小すると、子も拡大縮小されますが、狂ったように狂ってあちこちに行きます(あまり良い言い方ではありません)が、私のポイントは、子供が拡大縮小すると仮定したことです親に比例して同じ場所にとどまります(そうではありません)

私の質問は、親ビューを1/4またはw / eで拡大縮小してビューの拇印を作成すると、親ビューが所有する子サブビューがそれに応じて拡大縮小され、1/4を許可するようにコードを設定する方法ですフルサイズのビューのように見えるサイズの拇印 (ちょうど小さい)。

4

1 に答える 1

1

サブビューをスケーリングするには、コンテンツ モードを使用する代わりに、コンテンツをスケーリングするようにビューのアフィン変換を設定する必要があります。

自動サイズ変更マスクは、サブビューのスケーリング用ではありません。代わりに、親ビューのサイズが変更されたときにサブビューのフレームを配置およびサイズ変更する方法については、バネと支柱のモデルです。ほとんどの場合、ビューが横向きから縦向きに、またはその逆に自動回転するときに使用されます。

あなたがやろうとしているのは、ビューのコンテンツをスケーリングすることです。したがって、画像を表示するために最適化された UIImageView を使用する代わりに、UIView のカスタム サブクラスを作成し、初期化で次のコードを使用してビューの変換を設定します。

self.transform = CATransform3DMakeScale(zoom, zoom, 1.0f);

次に、サブビューを配置します。変換を再設定すると、サブビューは互いに相対的に同じ位置に留まりますが、スケールは異なります。

于 2010-05-20T02:07:36.520 に答える