Domanda

Sto cercando di accelerare il mio gui che i carichi molto lento lento quando sto caricamento di un progetto di grandi dimensioni (l'interfaccia grafica è una rappresentazione di gruppi e sottogruppi e si compone di molti punti di vista). Durante questo processo stavo guardando quanto tempo determinati segmenti di codice prendere per eseguire e ho trovato che una chiamata a addSubview sta prendendo tra 10 e 20 millisecondi maggior parte del tempo. La visualizzazione secondaria stavo guardando un pulsante divulgazione. Mi chiedo se questo metodo è solo intrinsecamente lento o è la loro qualche altro fattore al lavoro qui? È il tempo necessario per aggiungere il visualizzazione secondaria dipende dalla complessità della visualizzazione secondaria o è che non è un fattore? Inoltre, c'è qualche altro metodo che può essere utilizzato per aggiungere una visualizzazione secondaria che potrebbe essere più veloce?

È stato utile?

Soluzione

Si potrebbe provare -setSubviews: che prende una serie di subviews. Questo può essere più veloce quindi chiamando -addSubview:. Più volte da soli

Altrimenti, -addSubview: e -addSubview: posizionate: relativeTo:. Sono gli unici altri metodi di inserimento viste secondarie

Sono curioso, però, perché è di 10 - 20 ms a rallentare per una singola visualizzazione secondaria? Quante subviews stai cercando di aggiungere?

E 'possibile che ci sia un design alternativo utilizzando NSCell di che può essere più veloce, ma senza conoscere maggiori dettagli su ciò che si sta cercando di realizzare, è difficile sapere.

Altri suggerimenti

Riorganizzare la gerarchia di vista non è qualcosa che ci si fa in genere molto spesso. Invece di aggiungere e rimuovere subviews, si potrebbe nascondere e li scoprire.

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