2012-06-27 12 views
5

Ho alcuni avvisi interessanti con prestazioni di scorrimento su UITableView con cornerRadius, borderWidth e borderColor abilitato.UITableView cornerRadius con problemi relativi alle prestazioni dei bordi su iOS

self.tableView.layer.cornerRadius = 10.f; 
self.tableView.layer.borderWidth = 1.0f; 
self.tableView.layer.borderColor = [UIColor whiteColor].CGColor; 

Se rimuovo borderWidth e borderColor di scorrimento ottiene 60 fps senza alcun problema. Finché aggiungo queste due proprietà al livello di gocce FPS.

Qualcuno ha un suggerimento o una spiegazione del motivo per cui si verifica questo strano comportamento?

Grazie mille!

+1

Perché ha bisogno di più operazioni di disegno. – onegray

+0

A causa di borderWidth? –

+1

Penso di sì. Impostando 'borderWidth' e' borderColor' si aggiungono ulteriori operazioni per disegnare il bordo. Lo stesso per 'cornerRadius'. – onegray

risposta

1

Ho appena scoperto che cornerRadius con borderWidth table pigro Visualizza le prestazioni di molto. Quindi, anziché il raggio 10.f, sono passato a 5.f e le prestazioni sono aumentate incredibilmente. Ancora non perfetto ma notevolmente migliore ...

6

CALayer con proprietà shouldRasterize per questo tipo di problema di prestazioni. Basta impostare

self.tableView.layer.shouldRasterize = YES; 

Questa singola linea ha salvato la mia sacco di tempo e di lavoro.

Problemi correlati