2012-06-27 13 views
5

Tengo un aviso interesante con el rendimiento de desplazamiento en UITableView con cornerRadius, borderWidth y borderColor habilitado.UITableView cornerRadius con problemas de rendimiento de borde en iOS

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

Si quito borderWidth y borderColor de desplazarse obtiene 60 FPS ningún problema. Siempre y cuando agregue esas dos propiedades a la capa de FPS cae.

¿Alguien tiene una sugerencia o explicación sobre por qué ocurre este extraño comportamiento?

¡Muchas gracias!

+1

Porque necesita más operaciones de dibujo. – onegray

+0

debido a borderWidth? –

+1

Creo que sí. Al establecer 'borderWidth' y' borderColor' agrega operaciones adicionales para dibujar el borde. Lo mismo para 'cornerRadius'. – onegray

Respuesta

1

Acabo de enterarme de que la esquinaRadius con borderWidth tabla lentaVisualice el rendimiento por mucho. Entonces, en lugar de 10.f radius, cambié a 5.f y el rendimiento aumentó increíblemente. Aún no es perfecto, pero notablemente mejor ...

6

CALayer having shouldRasterize propiedad para este tipo de problema de rendimiento. Sólo tienes que configurar

self.tableView.layer.shouldRasterize = YES; 

Esta sola línea salvó la gran cantidad de tiempo y trabajo.

Cuestiones relacionadas