8

このようなポートレートと水平の両方をサポートするにはUIView:

  +-------------------+
  | +---------------+ |
  | |               | |
  | |     Fixed     | |
  | |      size     | |
  | |     Square    | |
  | |               | |
  | +---------------+ |   Protrait
  | +---------------+ |
  | |   Flexible C  | |
  | +---------------+ |
  | +---+       +---+ |
  | | A |       | B | |
  | +---+       +---+ |
  +-------------------+

  +----------------------------------+
  | +---------------+ +------------+ |
  | |               | |  Flexible  | |
  | |    Fixed      | |     C      | |
  | |     size      | +------------+ |
  | |    Square     | +---+    +---+ |
  | |               | | A |    | B | |
  | +---------------+ +---+    +---+ |
  +----------------------------------+
               Horizontal

でサブビューを手動で再配置する必要がありますwillRotateToInterfaceOrientationか? またはAutolayout、自動的に行うことができますか?

  • Bボタンは常に右下にあります
  • Aに対して相対的に配置されたボタンですB(できれば の左側に揃えますC)
  • Cはテキスト用で、サイズは柔軟です
  • AそしてB下にあるC
4

1 に答える 1

6

この場合、ほとんどのレイアウト作業を自動的に行うことができますが、回転時にわずかな調整を行う必要があります。

私が提案するのは、ビュー A、B、および C を別のに含めるUIViewことです。このようにして、向きに依存するレイアウトは、柔軟なサイズのレイアウトから分離されます。また、レイアウトのコーディングが非常に簡単になります。

次に、正方形ビューとコンテナー ビューを次のようにレイアウトします。

H:|-10-[squareView]
V:|-10-[squareView]
H:[containerView]-10-|
V:[containerView]-10-|
squareView.width == squareView.height

正方形のビューは常にスーパービューの左と上に位置合わせされ、コンテナー ビューは下と右に位置合わせされることに注意してください。縦向きの場合は、次の制約を追加します。

V:[squareView]-10-[containerView]
H:[squareView]-10-|
H:|-10-[containerView]

横向きの場合は、これらの制約を逆にします。

H:[squareView]-10-[containerView]
V:[squareView]-10-|
V:|-10-[containerView]

これは全体的なレイアウトのためだけなので、コンテナー ビューのサブビューの柔軟なサイズ変更はあなた次第です。お役に立てれば!

于 2013-07-31T05:48:49.097 に答える