web-dev-qa-db-ja.com

ストーリーボード:レイアウト制約を変更したときにXcodeにフレームを自動的に更新させるにはどうすればよいですか?

プレゼンターがストーリーボードを使用し、テーブルビューコントローラー内のテーブルビューセルプロトタイプの高さを変更するWWDC 2014ビデオ(Interface Builderの新機能)を見ました(約7分30秒)。彼がセルの高さハンドルをドラッグすると、そのセルのすべてのサブビューのサイズが変更されます。これは素晴らしいことです。さまざまなシナリオでレイアウト制約がどのように動作するかを非常にすばやく確認できるからです。

彼はそれをどのように行うかを説明していません。テーブルビューセルのプロトタイプの高さハンドルをドラッグすると、すべてのサブビューのフレームが更新されないためです。メニューから選択した場合にのみ更新されます:エディター>自動レイアウトの問題の解決>フレームの更新(テーブルビューコントローラーのすべてのビュー)

レイアウトの制約に従って、ストーリーボードに表示されるビューフレームのライブ更新を切り替えるXcode設定はどこかにありますか?

19

理論的には、[サイズ変更の動作]ポップアップメニュー(ストーリーボードエディタの右下隅)で[子孫]をオンにできるはずです。

実際には、あなたの場合は壊れています。私も同じ問題を抱えてる。 http://bugreport.Apple.com/ でバグを報告できます。

おそらくヨセミテでうまく機能します。私はまだマーベリックスを実行しています。

6
rob mayoff

更新:XCode 8 Beta 5でテストしたところ、フレームを手動で更新する必要があるXIBが見つかり、フリーフォームビューのサイズを変更すると自動的に更新されるようになりました。

XCode 7.3.1の場合:これは解決策ではありませんが、適切な妥協点を見つけました。

XCode->設定->キーバインディング->「フレームの更新」を検索します。最初のアイテムの既存のショートカット(機能していないようです)を削除し、2番目のアイテムのショートカットをCTRL + OPTION + COMMAND + Pに置き換えます。ショートカットは一例です。既存のバインディングと競合しないショートカットを追加できます)。

これで、サイズを変更するたびに、ショートカットを使用してフレームをすばやく更新できます。

1
Vlad

正解はバグであるとマークされていますが、InterfaceBuilderが制約を理解して自動更新できない場合があります。 YosemiteでXcode6.2を使用しています。同じ問題があると思いましたが、制約がより完全になるにつれて、InterfaceBuilderは制約を更新しています。

0
JamWils