次のうち、ビューを非表示にする最良の方法はどれですか?
- フレームを CGRectZero に設定する
- 隠しプロパティをYESに
- alpha プロパティを 0.0 に
一方には他方にない利点がありますか? 実行時にリソースを節約するという点では?具体的には、再利用可能なセルを含む UITableView で、一部のサブビューがセルごとに必要とされない場合があります。
次のうち、ビューを非表示にする最良の方法はどれですか?
一方には他方にない利点がありますか? 実行時にリソースを節約するという点では?具体的には、再利用可能なセルを含む UITableView で、一部のサブビューがセルごとに必要とされない場合があります。
それはあなたが何を達成したい/何を達成する必要があるかに依存します。頻繁に再利用される可能性のあるビューの場合は、 view.hidden=TRUE
(この場合は私の選択)および/またはの組み合わせ、および/またはview.alpha=0.0
z-indexを操作して、ビューが前面に表示されないようにします。
ビューのフレームをに設定する利点についてはよくわかりませんCGRectZero
。その時点で完全に削除する方が適切な場合があります。
要するに、あなたがそれを必要としないならば、それを保持しないでください。
更新:
言及されたテーブルセルでは、特にサブビューを削除するとレイアウトの問題が発生する場合は、複数のカスタムセルを作成する可能性も考慮してください。各セルは、設定した基準に基づいて作成できます。
更新2:
左下のコメントに基づいて、セルが複雑な場合は、コードを介してセルを描画することが正しい解決策になる可能性があります。
UIViewを使用alpha=0
すると、アニメーション化できるという利点がありますが、そうではありhidden=YES
ません。frame=CGRectZero
アニメートも可能ですが、まったく異なる効果です。アニメートalpha=0.0
すると、ビューがフェードアウトしframe=CGRectZero
ますが、左上に消えて見えるようになります。これらの手法はすべて非常に軽量であるため、これらの手法のシステムリソースの費用について心配する必要はありません。