NSViewの方法のaddSubviewは、本質的に遅いですか? (ココアOSX)
-
19-09-2019 - |
質問
私は、大規模なプロジェクトをロードしていますが遅いときの負荷非常に遅い(GUIはグループおよびサブグループの表現であり、多くのビューで構成されて)私のGUIを高速化しようとしています。このプロセスの間に、私は特定のコードセグメントの実行に要する時間の長さを見ていたと私はaddsubviewへの呼び出しは、ほとんどの時間10〜20ミリ秒の間で取っていることを発見しました。私が見ていたサブビューは、開示のボタンです。このメソッドは、単に本質的に低速であるか、ここに仕事で彼らの他のいくつかの要因である場合、私は疑問に思って?それはサブビューの複雑さに依存サブビューを追加するのにかかるかどうかの要因ということです時間がありますか?また、より高速であるかもしれないサブビューを追加するために使用することができる他のいくつかの方法がありますか?
解決
あなたは-setSubviewsを試みることができる:サブビューの配列をとります。これは、より速く-addSubview呼び出した後ことがあります。複数回の自分
そうでない場合、-addSubview:と-addSubview:位置付け:relativeToで:サブビューを挿入するための唯一の他の方法がある
20ミリ単一サブビューのために減速する -私は好奇心が強い、しかし、なぜ10がありますか? どのように多くのサブビュー追加しようとしている?
これは速くなりますが、なしで、あなたが達成しようとしているのかについての詳細を知っている可能性がありNSCellの者を使用して別の設計があることが可能であり、知っていることは困難です。
他のヒント
ビュー階層を整理するあなたは一般的に非常に頻繁に行うと思いますものではありません。代わりにサブビューの追加と削除のため、あなたはそれらを隠し、再表示することができます。