2017-10-30 13 views
1

ビューサイズが異なるビューコントローラをロードしています。サイズは "viewDidLayoutSubviews"で設定され、ビューに送信されるパラメータに関して異なる場合があります。ビューコントローラの制約を同時に満たすことができません

私は自分のビューで、2つのラベル(タイトル+エラー)、テーブルビュー、および2つのボタンを並べて(確認+キャンセル)構成しています。

enter image description here

完全にビューをロード、私はまだこのメッセージを持っている:制約について叫ん

* Xcodeは、その後

( "<_UILayoutSupportConstraint:0x604000281040 _UILayoutGuide:0x7f84ce652de0.height == 0 (active)>", "<_UILayoutSupportConstraint:0x604000289830 _UILayoutGuide:0x7f84ce652de0.bottom == UIView:0x7f84ce66fea0.bottom (active)>", "<NSLayoutConstraint:0x60000048b630 UIButton:0x7f84ce4b3c60'Continuer'.height == 60 (active)>", "<NSLayoutConstraint:0x6040002963a0 UILabel:0x7f84ce670bd0'Sexe'.top == UILayoutGuide:0x6040001b2520'UIViewSafeAreaLayoutGuide'.top + 5 (active)>", "<NSLayoutConstraint:0x6040002967b0 V:[UILabel:0x7f84ce670bd0'Sexe']-(0)-[UILabel:0x7f84ce43a770'Error'] (active)>", "<NSLayoutConstraint:0x60400028c4e0 V:[UILabel:0x7f84ce43a770'Error']-(5)-[UITableView:0x7f84ce850000] (active)>", "<NSLayoutConstraint:0x60400028c3a0 V:[UITableView:0x7f84ce850000]-(0)-[UIButton:0x7f84ce4b3c60'Continuer'] (active)>", "<NSLayoutConstraint:0x60400028f0a0 V:[UIButton:0x7f84ce4b3c60'Continuer']-(0)-[_UILayoutGuide:0x7f84ce652de0] (active)>", "<NSLayoutConstraint:0x60000048cda0 'UIView-Encapsulated-Layout-Height' UIView:0x7f84ce66fea0.height == 0 (active)>", "<NSLayoutConstraint:0x604000296670 'UIViewSafeAreaLayoutGuide-top' V:|-(0)-[UILayoutGuide:0x6040001b2520'UIViewSafeAreaLayoutGuide'] (active, names: '|':UIView:0x7f84ce66fea0)>" )

どれ*問題であるように思われた1指定しますどのような制約が私にそのようなトラブルを引き起こしているのか? (私は完全なXcodeメッセージを投稿できますが、迷惑メールにはなりません)

+0

完全なXcodeメッセージを投稿してください:) – jvrmed

+0

まず、このログから問題が縦軸にあることがわかります。第2に、Xcodeはどの拘束条件が「中断」するかを指定します。このメッセージには、デバッグできる例外のヒントも含まれています。手動デバッグが必要な場合は、ログからの参照によるビューの検索方法を調べることができます。レイアウトエンジンによって「壊れた」制約は必ずしも問題を引き起こすものではなく、削除するのではなく、垂直軸のすべての制約を分析する必要があることに注意してください。 –

+0

私はこれらの2つを持っています:制約を破ることによって回復しようとします ---------- AND ---- -------制約を破ることで回復しようとします

答えて

1

私の問題は、ビューの高さを "viewDidLayoutSubviews"でインスタンス化した後、 。 "Presentr" libを使用して簡単にビューをインスタンス化しています。

私の問題は、ストーリーボードの制約とはまったく関係がありませんでした。 Presentrでプレゼンテーションを行う前に私のビューの高さを指定することで、問題を解決することができました。 これを行うには、私はあなたがここで見ることができる

let customType = PresentationType.custom(width: .custom(size: Float(self.view.frame.width)), height: .custom(size: editProfileVC.getHeight()), center: .center) 

ような何かに私をできるように、その高さを取得するには、「のgetHeight」FUNCを持っている私のコントローラを強制的にプロトコルをした、その高さのため、I "editProfileVC.getHeight()"を使用しています

他の人にも役立つことを望みます。

関連する問題