8
A
答えて
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つの値がすべて横切っているか、上下に横切っているかは、明らかな理由のために同時に固定することはできません。
は非常にトリッキーなようです!私はこれを試してみましょう –
全くトリッキーではありません。実際には非常に簡単です。固定マージンは、ビューを作成するときに、その親ビューを基準にして、サブビューのマージンが何であれです。それでおしまい。サブビューに柔軟な幅を与えれば完了です。 – rmaddy
は難しくありません。コードで作成されたUIViewは、IBで使用されているものとは異なるデフォルト値を持っています。混乱を招く可能性があります。 –