0

iPhone で自動サイズ変更マスクを使用して、横向きモードと縦向きモードでビューを調整したいと考えています。問題は、Interface builder から width spring を適用すると、ボタンのサイズが比例して変化することです。しかし、コードで同じスプリングを適用すると、つまり

 [self.view setAutoresizesSubviews:YES]; 
 [testButton setAutoresizingMask:UIViewAutoresizingNone];
 [testButton setAutoresizingMask:UIViewAutoresizingFlexibleWidth];

ボタンは同じ動作を示しません。

Interface builder からボタンに適用される自動サイズ変更: 元のボタン サイズ: 幅 120、高さ 37 ランドスケープ モード ボタン: サイズを比例的に変更

コードからボタンに適用される自動サイズ変更:元
のボタン サイズ
:幅 120、高さ 37

コードから作成されたボタンのサイズが大きくなるため、コードから適用されたマスクが正しく機能していないようです。

私のビューは複雑なので、ビューに各サブビューのフレームを設定したくないのです。

同じ問題を抱えている人!!!

4

2 に答える 2

1

ところで、私は私の問題を解決しました。インターフェースビルダーとのリンクとは何の関係もありませんでした。サブビューのサイズを自動的に変更したい場合は、実際にはインターフェースビルダーなしでビューを作成しています。ビットごとの OR コネクタを使用して、スプリングとストラットを 1 行に設定する必要があります。ビューのサイズを変更するために使用したコードは次のとおりです。

[appLogo setAutoresizingMask: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin];
于 2010-08-30T03:55:29.860 に答える
0

2点確認。1. IBOutlet の接続 2. 作成したビューの IBOutlet の @property が作成されていることも確認します。

これで問題が解決することを願っています。

于 2010-08-27T09:38:41.350 に答える