0

私には2つのボタンがあり、グループとしてそれらのスーパービューの中央に配置したいと思います。

視覚的な形式で表現すると、どこが等しく、AutoLayoutによって自動的に決定されるようなもの|-*-[button1]-5-[button2]-*-|が必要です。*

現在、3つの回避策がありますが、すべてあまりエレガントではないようです。

  1. UIViewの2つのボタンのサブビューを作成し、そのビューを中央に配置します

  2. *の値を手動で計算し、手動で制約を更新します

  3. ボタンの幅から手動で計算されたオフセットを使用して、両方のボタンをスーパービューの中心に揃えます

他に何か提案はありますか?

4

2 に答える 2

2

2つのボタンの中心をそれらのスーパービューに合わせることに集中しすぎていたと思います。代わりにエッジについて考え始めたとき、私はこれを思いついた

[NSLayoutConstraint constraintWithItem:button1
                             attribute:NSLayoutAttributeRight
                             relatedBy:NSLayoutRelationEqual
                                toItem:superview
                             attribute:NSLayoutAttributeCenterX
                            multiplier:1
                              constant:-2.5]];

[NSLayoutConstraint constraintWithItem:button2
                             attribute:NSLayoutAttributeLeft
                             relatedBy:NSLayoutRelationEqual
                                toItem:superview
                             attribute:NSLayoutAttributeCenterX
                            multiplier:1
                              constant:2.5]];

これにより、2つのボタンsuperviewが5の中間間隔で中央に配置されます。

于 2013-02-22T06:51:39.180 に答える
0

ダミー要素を中央に配置し(非表示のビュー)、各ボタンを左右にオフセットすることができます。

ここに画像の説明を入力してください

于 2013-02-21T21:50:49.327 に答える