2012-02-17 37 views
9

Tengo el diseño de estilo de menú a continuación que imita a Facebook. Me gustaría tener una sombra de gotas en el lado izquierdo como a continuación, sin embargo, el código que estoy usando con las sombras de capas hace que la aplicación LAGGY. No he podido encontrar una buena solución alternativa. ¿Alguien tiene una alternativa para crear una sombra de gotas que no afecte el rendimiento de la aplicación?iOS: Crear una sombra de gotas lateral

[self.navController.view.layer setShadowOffset:CGSizeMake(0, 1)]; 
[self.navController.view.layer setShadowColor:[[UIColor darkGrayColor] CGColor]]; 
[self.navController.view.layer setShadowRadius:8.0]; 
[self.navController.view.layer setShadowOpacity:0.8]; 

El código anterior es el código que estoy usando y que causa problemas de rendimiento de la aplicación.

La imagen de abajo es lo que me gustaría lograr pero sin tener que usar el código anterior.

enter image description here

Respuesta

10

Debe ayudar a especificar una ruta de sombra, por ejemplo,

CGPathRef shadowPath = [UIBezierPath bezierPathWithRect:self.navController.view.layer.bounds].CGPath; 
[self.navController.view.layer setShadowPath:shadowPath] 

De acuerdo con la CALayer documentation, "Especificación de una ruta explícita suele mejorar el rendimiento del procesamiento."

+0

impresionante! esto ayudó mucho, pero sí noté un poco de rendimiento pero no demasiado. – Bot

0

Yo solo agregaría un UIView que contenga esa sombra como una subvista y la reposicionará tan pronto como esté animada la vista del lado derecho. (Por ejemplo, llegar a esa sombra con capas o gráficos básicos)

+0

Agregar demasiadas vistas disminuirá el rendimiento del compañero –

4

Usted puede simplemente inserción de las vistas límites y establecer la ruta de la sombra:

UIEdgeInsets contentInsets = UIEdgeInsetsMake(10, 0, 0, 0); 
CGRect shadowPathExcludingTop = UIEdgeInsetsInsetRect(self.bounds, contentInsets); 
self.layer.shadowPath = [UIBezierPath bezierPathWithRect:shadowPathExcludingTop].CGPath; 
Cuestiones relacionadas