のみのiOS 6で
自動レイアウト(IOSの6)
リサイズマスクを挙げることが古い応答を、更新、オートレイアウトをストーリーボード/ XIBにXCodeので動作するように、いえ、ちょっと醜い加えました。 Autolayoutは説明するには大きすぎますが、その本質は階層内のビュー間のルールのセットだということです。したがって、ビューのx位置を親ビューの右端に固定することができます。これは
myView.autoresizingMask = UIViewAutoresizingMaskFlexibleTopMargin |
UIViewAutoresizingMaskFlexibleLeftMargin |
UIViewAutoresizingMaskFlexibleWidth |
UIViewAutoresizingMaskFlexibleHeight;
を行うのと同等の
です:サイズインスペクタのオプションを見てみましょうAuto Layout Programming Guide
自動サイズ変更マスク(iOSの2)
を参照してください。コードで実行してからIBを実行するまでには違いがあることに注意してください。境界線のIB自動サイズ設定はストラットとして機能し、正しいものを選択します。たとえば、「私の右の境界線はスーパービューの右端に固定されています。
一方、コードでは、境界線が張られていない辺を指定する必要があります。柔軟性があります。高さと幅は正常に機能します。
レイアウトサブビュー(iOSの2が、iOS5を+のための落とし穴)
すべてが失敗した場合、私はその位置にしてきた、そしてそれだけでunmaintanableにつながる、あらゆる場所に手動位置合わせをやって起動していません、 3つ以上のメソッドが同じビュープロパティを混乱させているスパゲッティコード。
代わりに、UIView -layoutSubviews
にあなたのカスタムポジショニングをすべて行うことをお勧めします。このメソッドは、setNeedsLayout
がトリガされたときに必要に応じて呼び出されます。たとえば、ビューの幅が変更された場合、サブビューはレイアウトのサブビューイベントを取得します。このメソッドは、アニメーションがどのように見えるかを判断するために、新しい幅が呼び出されるため、回転インターフェイスの実装がさらに簡単になります。
レイアウトのサブビューは、自動レイアウト/自動サイズ変更マスクの実行後に機能します。
出典
2011-08-30 19:10:19
Can
あなたの子供の 'UIView'に対して' autoresizingMask'を適切に設定できないのはなぜですか?結局のところ、別のビューの子にすると、それはサブビューです! –
返事をありがとう。 サブビューでこれを行いました: – androidkc
[self setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin]; でも動作しないようです。 – androidkc