Domanda

Ho un NSView strato di hosting (-isFlipped = YES), con tre strati subviews-hosting. Le subviews sono un colpo di testa, un area di contenuto, e un piè di pagina. L'intestazione ha un triangolo di apertura che comprimere la visualizzazione di contenuti e solo mostrare l'intestazione e piè di pagina attaccate l'una all'altra.

posso ottenere questo risultato abbastanza facilmente con Core Animation, ma c'è un problema strano succede quando ho ridimensionare la vista. Se a ridimensionare la vista orizzontale, voglio tutti e tre i subviews per abbinare la nuova larghezza. Se a ridimensionare in verticale, voglio che le subviews di rimanere dove sono (cioè il bordo inferiore della vista dovrebbe essere in grado di muoversi senza influenzare la posizione della visualizzazione secondaria (ad eccezione di ritaglio naturalmente). La ragione di questo è che ho bisogno di crollo la dimensione della vista quando la contentView è sbiadito fuori.

Che cosa realmente sta accadendo è che tutti e tre i subviews sono stati spinti al di sopra della parte superiore della vista quando l'altezza è cambiato ... e quindi far scattare di nuovo in posizione quando l'orizzontale è cambiato. Ha qualcosa a che fare con la combinazione di entrambi la vista e le subviews, perché se i subviews sono collocati direttamente nella finestra, si comportano in modo corretto. Inoltre, ho provato ad aggiungere un pulsante nella visualizzazione e comportava normalmente.

sono stato in grado di ottenere il pulsante di comportarsi male nello stesso modo, rendendo strato-backed troppo ... quindi penso che l'appoggio strato ha qualcosa a che fare con esso.

E 'come gli strati dorsali sono sempre bloccati alla vista primaria come ridimensiona ed essendo spinto verso l'alto anche se le coordinate sono capovolte.

Tutte le idee?

È stato utile?

Soluzione

viste strato di hosting non dovrebbero avere subviews. See - (void) setWantsLayer: documentazione di riferimento NSView classe:

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

vista Root dovrebbe forse essere uno strato sostenuta vista invece di uno strato di hosting?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top