2016-07-03 6 views
2

私のストーリーボードでは、ビューのレイアウトマージンをに設定して、明示的にに設定します。 、ストーリーボードで定義されている明示的なレイアウトマージンは、実行時に破棄されます

enter image description here

を...しかし、私は私のアプリを起動すると、レイアウトのマージンはデフォルト(8,8に戻る:

enter image description here

すべてはストーリーボードエディタビューで正常に見えます8,8):

値を読み取ろう

enter image description here

programmaticall y(myView.layoutMargins)はそのデフォルト値を再度示します。レイアウトマージンでどのような値を設定しても、実行時にはまったく何もしません。

  1. をIBで新しいビューコントローラを作成します。再現する

  2. ビューを追加し、レイアウトマージンを明示的に設定する(30,8,8,8)
  3. ビューの上、左、幅、高さの制約を作成します。
  4. ビューに背景色を付けると、ラベルが正しくインデントされているかどうかを簡単に確認できます。
  5. ラベルをそのビューのサブビューとして追加し、上と下の余白にピンを固定します。
  6. ストーリーボードでは、ラベルは左から30ピクセル分インデントされています。
  7. アプリを実行します。ラベルが30ピクセルのインデントを失って、代わりにデフォルトの8ピクセルに戻っていることに注目してください。

注:私はXcodeの使用しています7.

+0

このような単純な方法で再現できれば、[バグレポート](http://bugreport.apple.com) –

答えて

0

あなたがviewDidLoadlayoutMargins値を読み取るしようとした場合、それが値セットを報告しません、8

しかしXcodeで固定していますように見えますストーリーボードで。正しい値を確認するには、viewDidAppearのような後のメソッドが呼び出されるまで待つ必要があります。

+0

Hmmの良い候補のようです。私は8.2.1を使用していますが、テーブルビューのセルの 'contentView'で明示的なマージンを使用しても問題は残ります。 :( – NRitH

関連する問題