2016-12-08 25 views
0

StoryboardでUIButtonをいくつかの制約でリンクし、クラスにリンクしました。ボタンの位置に関係なくボタンの中心座標を印刷しようとすると(500.0,500.0)印刷しようとしました。 。誰かがなぜこれが起きているのか説明することができますか(制約のために私はかなり確信していますが、説明はありません)。制約が表示されたUIButton(500,500)

+0

あなたは私たちに制約を表示することができますか?あなたのUIButtonのサイズインスペクタのリストをスクリーンショット – Nathaniel

+1

センターをどこに印刷していますか?ビューが初期レイアウトを通過する前であれば意味がありません。 – dan

+0

'frame'(スーパービューに相対)または' bounds'(それ自体に対して)を使用していますか? –

答えて

1

viewDidLayoutSubviewMethodにprintステートメントを追加します。この方法では、すべてのビューがレイアウトされていることが確認されます。

viewDidLoadではビューがレイアウトされていないため、出力が正しくありません。あなたがこの上でより多くの明快さを必要とする場合

は、リンゴのリファレンスを参照してください:https://developer.apple.com/reference/uikit/uiviewcontroller/1621398-viewdidlayoutsubviews

+0

また、そこで計算されたボタンレイアウトを本当にしたい場合、彼は 'layoutIfNeeded'メソッドを使用して、イミディエイトレイアウトを強制することができます。 –

+0

私はそれが過度になると思います:P – Aakash

+0

'viewDidLayoutSubviews'は複数回呼び出され、' viewDidLoad'は一度だけ呼び出されるので、実際はもっと簡単ですが、それはプログラマの責任です。 –