6

sto lavorando su un progetto che ha bisogno di:Trattare con IKImageBrowserView strato-backed, Z-ordini e altre preoccupazioni

  • hanno un'animazione della transizione da una vista che contiene un IKImageBrowserView ad un'altra vista;
  • hanno una sovrapposizione al passaggio del mouse su ogni IKImageBrowserCell mentre il mouse si sposta attraverso la vista; e
  • hanno un NSView sovrappongono una porzione del relativo browser

I problemi che sto avendo sono i seguenti:

  • L'IKImageBrowserView non rispetta z-ordine se non è strato -backed -> IKImageBrowserView rimane in primo piano indipendentemente anche se una vista è sopra di esso (o in esso per quello)
  • Se la vista del browser immagine è protetta dal livello, il problema di ordinamento z viene risolto ma il problema comportamento personalizzato nelle interruzioni di IKImageBrowserView (ad es. al passaggio del mouse) -> In Mac 10.7 per exampl e, il livello di selezione e il livello di primo piano della cella del browser non si spostano con l'immagine nella zona di "rimbalzo" della vista di scorrimento.

Ho bisogno del supporto di livello per eseguire le animazioni di transizione.

Per motivi di prestazioni, sono consapevole del fatto che Apple non consiglia le visualizzazioni di pari livello sovrapposte. Ci sono casi però che questo non può essere evitato.

Ho presentato un problema di supporto tecnico ad Apple su questo. L'hanno inoltrato agli ingegneri ma mi hanno anche consigliato di inviare un bug report.

Qualcuno si è imbattuto in questo prima e, in caso affermativo, quale soluzione alternativa è stata utilizzata?


Per chi è curioso, il progetto di esempio è qui https://github.com/jdbenito/nerdery. Nel delegato dell'app, provare a commentare/rimuovere il commento da -setWantsLayer: line.

IKImageBrowserView inizia a mostrare comportamenti strani quando è supportato dal livello. E i sintomi differiscono a seconda del sistema operativo (ad es. In Mac OS 10.6, gli hover funzionano fino a quando non si passa a un'altra scheda e si ritorna a IKImageBrowserView. In Mac OS 10.8, i layer hover non sembrano essere visualizzati nella cella corretta) .

+0

Abbiamo lo stesso problema. Nessuna soluzione trovata ancora. Qualche notizia dalla tua parte? – Raffael

+0

Ho avuto un'esperienza spiacevole con IKImageBrowserView e non cercherò mai di usarlo di nuovo.Trascorrere settimane a personalizzarlo ha finito col capire che alcune cose semplici sono semplicemente impossibili da implementare. Così ho creato il mio controllo hosted in 3 giorni e ora posso modificarlo per adattarlo a qualsiasi mia esigenza. – UJey

risposta

0

I fratelli NSView possono senz'altro sovrapporsi. Ho avuto la stessa domanda qualche tempo fa e ho ricevuto conferma da alcuni ingegneri Apple: Are layer-backed NSView siblings allowed to overlap?

Informazioni su IKImageBrowserView: ho l'impressione che sia più o meno destinato a essere usato come una "scatola nera", molto simile un UITableView su iOS: puoi personalizzare le celle e alcuni comportamenti, ma è meglio non scherzare con la sua gerarchia delle viste interne aggiungendo le sottoview direttamente ad esso. Se hai bisogno di qualcosa oltre al comportamento standard e documentato, potresti stare meglio scrivendo la tua soluzione. Non dovrebbe essere eccessivamente difficile da fare, soprattutto perché hai accesso a Image I/O per tutte le tue esigenze di anteprima e anteprima: https://developer.apple.com/library/mac/documentation/graphicsimaging/Conceptual/ImageIOGuide/imageio_source/ikpg_source.html#//apple_ref/doc/uid/TP40005462-CH218-SW3

Spero che questo aiuti!

Problemi correlati