大規模なプロジェクトをロードしているときに、ロードが非常に遅くなるGUIを高速化しようとしています(GUIはグループとサブグループの表現であり、多くのビューで構成されています)。このプロセス中に、特定のコードセグメントの実行にかかる時間を調べていましたが、addsubviewの呼び出しには、ほとんどの場合10〜20ミリ秒かかることがわかりました。私が見ていたサブビューは開示ボタンです。この方法は本質的に遅いのか、それとも他の要因がここで機能しているのでしょうか。サブビューを追加するのにかかる時間は、サブビューの複雑さに依存しますか、それとも要因ではありませんか?また、より高速なサブビューを追加するために使用できる他の方法はありますか?
1847 次
2 に答える
2
ビュー階層の再配置は、通常は頻繁に行うことではありません。サブビューを追加および削除する代わりに、サブビューを非表示および再表示できます。
于 2010-03-13T06:30:32.040 に答える
2
サブビューの配列を取得する-setSubviews:を試すことができます。これは、-addSubview:を自分で複数回呼び出すよりも高速な場合があります。
それ以外の場合、-addSubview:および-addSubview:positioned:relativeTo:は、サブビューを挿入するための他の唯一のメソッドです。
しかし、私は興味がありますが、1つのサブビューで10〜20ミリ秒遅くなるのはなぜですか?追加しようとしているサブビューはいくつですか?
NSCellを使用した、より高速な代替設計が存在する可能性はありますが、達成しようとしていることの詳細がわからないと、知ることは困難です。
于 2010-03-13T14:28:32.020 に答える