UIStackView
のサブビューを非表示にするには、isHidden
をtrueに設定するか、removeArrangedSubview
を使用して親ビューからサブビューを削除することをお勧めしますStackview
?
Stackviewを使用して、UIElementをtableViewセルに配置しています。現在、親StackViewと子StackViewが内部に配置されています。子ビューは、条件に基づいて表示または非表示にする必要があります。条件がtrueになったときに、子ビューのisHidden
プロパティをtrueに設定しています。
スクロールして新しいセルが表示されるようになると、コンソールに次のメッセージが表示されます。アプリはクラッシュしません。
NSLayoutConstraint:0x600000093470 'UISV-canvas-connection' UIStackView:0x7fd4527201b0.top == UILabel:0x7fd452720370'Day Off-Rest and Sleep ... '。top(アクティブ)
UIViewAlertForUnsatisfiableConstraintsにシンボリックブレークポイントを作成して、デバッガーでこれをキャッチします。 <UIKit/UIView.h>
にリストされているUIViewのUIConstraintBasedLayoutDebuggingカテゴリのメソッドも役立つ場合があります。 [LayoutConstraints]制約を同時に満たすことができません。おそらく、次のリストの少なくとも1つの制約は、望ましくないものです。
これを試して:
制約を破って回復しようとします
最初の質問に答えるために、サブビューを再表示する必要がない場合、最も論理的なことは、removeArrangedSubview(UIView)
を使用してそれを削除することです。ご存知かもしれませんが、スタックビューは、ビューが追加、削除、挿入、または非表示/再表示されるたびに、そのレイアウトを自動的に更新します。
制約についてコンソールに表示される警告は、現在サブビューに実装したものに関連する場合と関連しない場合があります。あなたはそれが関連しているかもしれないと思ったのでそれを言及しましたか?
お役に立てば幸いです。