Ho UIScrollView e il numero di oggetti (composizioni UIView) con UIImageViews al loro interno. Alcune di UIImageViews hanno un bordo rotondo (io uso myImageView.layer.masksToBounds = YES;
per questo). Altro ha bordi rettangolari e parte di immagine in essi (io uso la proprietà Clip subviews
in Interface Builder per questo).clipToBounds and masksToBounds performance issue
Il problema è che ho scoperto che le proprietà delle clip influenzano pesantemente la prestazione durante lo scorrimento:
per iPod touch (4a generazione) risultati di profiling:
- con le proprietà dei clip abilitati (entrambi o uno dei loro) ho circa 30 fps durante lo scorrimento
- con disabilità proprietà delle clip che ho tutti i 60 fps durante lo scorrimento
davvero è necessario ritagliare alcune immagini su limiti arrotondati e altre sui limiti del rettangolo (per mostrare parte dell'immagine). Quindi, ecco la mia domanda: quali modi ci sono per migliorare le prestazioni? Possono esserci metodi di livello basso per farlo (drawRect:
o qualcosa del genere), o potrebbe essere utile giocare al mascheramento di alfa o fare qualcosa di sbagliato?
buoni consigli! ma ora aiuta davvero quando applico questa proprietà a vista intera (con vista immagine arrotondata e etichetta di testo all'interno). In questo caso il testo diventa così brutto .. Se lo applico solo nella vista immagine arrotondata non ha quasi alcun effetto. – Lloyd18
Ah, mi dispiace. Per il supporto della retina, impostare 'view.layer.rasterizationScale = [[UIScreen mainScreen] scale]'. Questo dovrebbe rendere tutto croccante. Ho aggiornato la mia risposta. –
E ricorda di controllare l'utilizzo della memoria. Utilizzare lo strumento "Monitoraggio attività" per vedere la differenza di utilizzo della memoria quando si utilizza la rasterizzazione. Probabilmente la memoria video aggiuntiva non verrà visualizzata in Allocations. Se l'aumento è troppo grande, dovresti provare a riciclare le visualizzazioni come ho detto, in modo che non ci siano troppe istanze in una sola volta. –