Ist die Methode addSubview von NSView von Natur aus langsam? (Cocoa OSX)
-
19-09-2019 - |
Frage
Ich versuche, meine gui, dass Lasten sehr langsam zu beschleunigen langsam, wenn ich ein großes Projekt bin Laden (die gui ist eine Darstellung von Gruppen und Untergruppen und besteht aus vielen Ansichten aus). Während dieses Prozesses war ich schauen, wie lange bestimmte Codesegmente nehmen auszuführen und ich haben festgestellt, dass ein Aufruf addSubview nimmt zwischen 10 und 20 Millisekunden die meiste Zeit. Die subview betrachtete ich eine Offenbarung Taste. Ich frage mich, ob diese Methode nur von Natur aus langsam ist oder sie ein anderer Faktor bei der Arbeit hier? Ist die Zeit, die die subview abhängig von der Komplexität der Subview hinzuzufügen nimmt, oder ist das nicht ein Faktor? Außerdem gibt es eine andere Methode, die verwendet werden kann, um eine Subview hinzufügen, die schneller sein könnten?
Lösung
Sie könnten -setSubviews versuchen: die eine Reihe von Subviews nimmt. Dies kann schneller sein, dann -addSubview Aufruf. Mehrfach selbst
Ansonsten -addSubview: und -addSubview: positioniert: relativeTo. Sind die einzigen anderen Methoden für Subviews Einfügen
Ich bin gespannt, aber warum ist 10 - 20 ms für einen einzelnen subview langsam? Wie viele Subviews versuchen Sie hinzufügen?
Es ist möglich, gibt es eine Alternative Design NSCell die Verwendung, die schneller sein kann, aber ohne mehr Details wissen, was Sie versuchen zu erreichen, ist es schwierig zu wissen.
Andere Tipps
Neufestlegung der Ansicht Hierarchie ist nicht etwas, was Sie in der Regel sehr oft tun würden. Stattdessen Subviews der das Hinzufügen und Entfernen können Sie verstecken und sie sichtbar machen.