Frage

habe ich ein Schicht-Hosting NSView (-isFlipped = YES) mit drei Schicht-Hosting Subviews. Die Subviews sind ein Header, ein Content-Bereich und eine Fußzeile. Der Header hat ein Dreiecksymbol, die den Inhalt Ansicht kollabiert und zeigen nur die Kopf- und Fußzeilen zusammengeklebt.

Ich kann dies erreichen ziemlich leicht mit Core Animation, aber es ist ein seltsames Problem geschieht, wenn ich die Ansicht ändern. Wenn ich die Ansicht horizontal verkleinern, möchte ich alle drei Subviews die neue Breite entsprechen. Wenn ich es vertikal skalieren, möchte ich die Subviews zu bleiben, wo sie (dh die Unterkante der Ansicht sind, sollten die Subview der ohne Beeinträchtigung der Position bewegen können (außer natürlich Clipping). Der Grund dafür ist, dass ich zu verkleinern müssen die Größe der Ansicht, wenn die contentausgeblendet wird.

Was tatsächlich passiert ist, dass alle drei Subviews über dem oberen Rand der Ansicht nach oben gedrückt werden, wenn die Höhe geändert wird ... und dann zurückschnappen statt, wenn die horizontal geändert wird. Es hat etwas mit der Kombination aus der Sicht und den Subviews zu tun, denn wenn die Subviews direkt im Fenster platziert sind, sie richtig zu verhalten. Auch habe ich versucht, eine Schaltfläche in die Ansicht zugab und verhielt sich normal.

konnte ich auf den Knopf misbehave auf die gleiche Art und Weise bekommen, indem sie es zu schicht gesichert ... so glaube ich, die Schichtunterlage etwas damit zu tun hat.

Es ist wie die Tragschichten auf der übergeordneten Ansicht stecken immer, wie es ändert die Größe und wird, obwohl die Koordinaten nach oben gedrückt werden gespiegelt.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Layer-Hosting-Ansichten sollten nicht Subviews. Siehe - (void) setWantsLayer: Dokumentation in NSView Klassenreferenz:

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSView_Class/Reference/NSView.html%23//apple_ref/occ/ instm / NSView / setWantsLayer :

Root-Ansicht sollte vielleicht eine Schicht seinen Blick gesichert anstelle einer Schicht Hosting ein?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top