2016-05-06 21 views
0

特定の条件で自分のビューを更新したいと思っていました。たとえば、3つのラベルが並んでいるコーヒーアプリでは、カップのサイズ、使用された他のトッピングその他の準備にかかる時間が表示されます。特定のコーヒーがトッピングを持っていないと想像してみてください。私は単にラベルに "nil"と言いたくはありません。私はラベルを消して、他のラベルも近くに置いておきます。私はこのようなことを考えていた:条件に基づいて制約を更新する

override func viewDidLoad() { 
super.viewDidLoad() 

    if thisFeatureIsAvailable == false { 
     //Make specific label disappear, move other labels together. 
    } else { 
    //Load content for label. 
    } 

} 

また、ラベルにいくつかのAutoLayout制約を設定しました。

tiferrei、ありがとう

+0

この場合、プログラムで制約を調整することができます。すべてがここに記述されています:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/ProgrammaticallyCreatingConstraints.html – almas

+0

'UIStackView'を使うことをお勧めします。それはあなたのための制約を処理し、あなたの目的に適しています。 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIStackView_Class_Reference/ –

+0

他の回答を選んだのは、問題に最も簡単なアプローチのように思えるからです。 'UIStackView'に変更する背中の痛みですが、@ user2215977のおかげで、あなたのメソッドが将来使用されます! –

答えて

0

すでにラベルの自動制約を設定している場合、彼らは最善の方法あなたが0に非表示にしたいラベルの幅を変更することです。安心してお休みいただけるかどうかは気をつけます。

+0

素晴らしいアイデア!これはビューでも機能しますか? –

+0

はい。それもビュー上で動作します。 – Kashif

+0

素晴らしいです、ありがとうございます! –

関連する問題