24

この質問は本当に基本的なものです。UIViewビュー階層からを削除することと を非表示にすることのパフォーマンスの違いは何UIViewですか?

不要なビューはビュー階層から削除する必要があることを読みました。UIButton現在、時々表示されるはずの状況があります。いつ非表示にしUIButton、いつスーパービューから削除しますか?

ビューの階層を変更すると費用がかかりますか?

4

3 に答える 3

9

私は iOS6 iPad mini で実験を行いました。大きなスクロール ビューには多くのリッチ コンテンツ (画像、ドロップ シャドウ、グラデーション レイヤー、パターン化された背景画像、デザイナーなど) が含まれています。そのビューを見つけました。 .hidden=YES ≠ [view removeFromSuperview].

hidden を YES に設定すると、ビューがレンダリング/描画されなくなるため、多くの非表示ビューを使用しても効率に影響はないと当初考えていました。しかし、実際の結果は次のとおりです。1) 大きなスクロール ビューのオフスクリーン ビューを非表示に設定すると (表示領域に戻ったときに非表示に戻すと)、スクロールはスムーズではなく、まったく連続的ではありません。自然に減速しているときは、非常にびくびくしています。2)スクロールビューからオフスクリーンビューを削除すると(ただし、追跡配列でメモリに保持されるため、戻ってきたときにすぐに追加できます)、スクロールは明らかにスムーズになります。

于 2013-04-09T18:30:58.017 に答える
5

サブビューの表示と非表示を切り替える必要がある場合、最善の方法は間違いなく非表示にすることです。とにかく、UIButtonメモリへの影響はそれほど大きくありません。また、プロパティを切り替えるだけの場合、コードは確かに簡単になりhiddenます。

また、hiddenプロパティがアニメート可能であるという追加の利点も得られます。

于 2012-07-04T12:30:12.487 に答える