私のiOSアプリケーションのUIは複雑なので、ボタンやビューを有効/無効/表示するときに混乱することがあります。いくつかの考えの後で、私はアプリが3つの州だけを持っていると思う:アイドリング、レコーディングと遊ぶ。Swift/iOS:計算されたプロパティを使用してUIアップデートをトリガしました。これはより良いです:didSet、willSetまたはset?
enum型の計算されたプロパティ変数AppState
を作成しました。これを使用して状態の変化を観察し、それに従ってUIを更新することができます。 UIの変更の中には、ボタンの表示や無効化、カスタムビューからカスタムオブジェクトを削除するものがあります。
var curState : AppState = .Idling {
didSet {
if newValue != oldValue {
updateUI() // ?? better here?
}
}
willSet(newValue) {
updateUI() // ?? good here?
}
set {
updateUI() // ?? good here
}
}
私はupdateUI()
メソッドを呼び出すために上記set
を使用している、それが正常に動作しますが、私は優れている3人の観察者のどの知りたいのですが? willSet
またはdidSet
を試していませんが、didSet
を使用しているため、UIを更新する前にoldValue
とnewValue
を比較できます。私は間違っている可能性があります、私はここでアドバイスのためのすべての耳です。
ありがとうございます!
ストアドプロパティを扱う場合、 'willSet'と' didSet'がより適切です。あなたが設定した値に基づいてUIを更新しようとしているなら、 'didSet'はそれを行うための論理的な場所です。計算されたプロパティを使用している場合にのみ 'set'を使用しますが、ここではストアドプロパティを扱っているので、実際には関係ありません。 – Rob