40757


XcodeにおいてAutolayout機能を使ってstoryboardからのconstraintで各パーツに制限をかけて配置しています。  
縦画面ではstoryboardからのconstraintで画面は作れました。  
横画面にした際には、プログラムにより各パーツの位置を変えたりしています。  
しかし、また縦画面にした際には横画面の制限がかかったままになります。

この対策としては縦画面に戻した際には横画面に行なった位置を元に戻さなくてはいけないため、コードにより縦位置を再度指定する形をとるべきと考えますが、「storyboardからのconstraint」を再度適用なんてことを都合よくできないものなのでしょうか。

また通常縦・横画面を配置する際には皆さんどのようにされているものなのでしょうか。  
ご存知の方、ご教示いただけると幸いです。


CC BY-SA 3.0
2017-12-28T01:17:59.007
40571
2018-01-05T14:14:33.097
8593
question
xcode
XcodeにおけるAutolayout縦横設定


> 横画面にした際には、プログラムにより各パーツの位置を変えたりしています。  
>  「storyboardからのconstraint」を再度適用なんてことを都合よくできないものなのでしょうか

プログラムで `constraint` をいじった以上、手間をかけて元に戻すプログラムを書く必要があると思います。

「横画面」「縦画面」とおっしゃっていますが、そもそも`Autolayout`は横画面や縦画面といった発想ではなく、
**適切な制約をかけておけば、どんな広さの画面でも対応できるようにしておく** という発想で使った方がよい（作りやすい）です。

ご要望の要件に今のところ一番近いものとしては`サイズクラス`だと思います。

`サイズクラス`を使ったとしても結局のところ基本的に`Autolayout`で実装することになると思いますので、
**適切な制約をかけておけば、どんな広さの画面でも対応できるようにしておく**
という発想で、出来る限りプログラムするのではなく適切な設定を初めから作っておくというのが良いです。


CC BY-SA 3.0
2018-01-05T14:14:33.097
40757
2018-01-05T14:14:33.097
9008
40571
answer