2013-04-16 14 views

答えて

21

、次の操作を実行できる柔軟な幅に沿って左と右のマージンを固定しているビューを取得する:

UIView *parentView = self.view; // adjust as needed 
CGRect bounds = parentView.bounds; // get bounds of parent view 
CGRect subviewFrame = CGRectInset(bounds, 20, 0); // left and right margin of 20 
UIView *subview = [[UIView alloc] initWithFrame:subviewFrame]; 
subview.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
[parentView addSubview:subview]; 

必要に応じて、あなたの実際のサブビューを作成するために調整します。希望のマージンに合わせてsubviewFrameを調整します。

答えとして、これはあなたのサブビューをそれぞれ20ポイントの固定された左右のマージンと柔軟な幅にします。 autoresizingMaskを設定すると、柔軟に設定されていないコンポーネントは自動的に(ほとんど)固定されます。これは、上余白と高さも固定されていることを意味します(設定されていないため)。下余白は、上余白と高さが固定されているため、暗黙的に柔軟になります。 3つの値がすべて横切っているか、上下に横切っているかは、明らかな理由のために同時に固定することはできません。

+0

は非常にトリッキーなようです!私はこれを試してみましょう –

+0

全くトリッキーではありません。実際には非常に簡単です。固定マージンは、ビューを作成するときに、その親ビューを基準にして、サブビューのマージンが何であれです。それでおしまい。サブビューに柔軟な幅を与えれば完了です。 – rmaddy

+0

は難しくありません。コードで作成されたUIViewは、IBで使用されているものとは異なるデフォルト値を持っています。混乱を招く可能性があります。 –

関連する問題