También debe establecer la opacidad de la sombra, por defecto es 0 y no verá nada si no lo establece explícitamente.
CALayer Reference
cell.layer.shadowOffset = CGSizeMake(1, 0);
cell.layer.shadowColor = [[UIColor blackColor] CGColor];
cell.layer.shadowRadius = 5;
cell.layer.shadowOpacity = .25;
También tenga en cuenta, que si no se establece la ruta de sombra que tendrá terribles rendimiento en el iPhone/IPAD. Use algo como el siguiente código para establecer una ruta de sombra, elimina la necesidad de difuminar las capas debajo de su tableviewcell para crear una sombra de "alta calidad".
CGRect shadowFrame = cell.layer.bounds;
CGPathRef shadowPath = [UIBezierPath bezierPathWithRect:shadowFrame].CGPath;
cell.layer.shadowPath = shadowPath;
Ver video 425 (también 424 y 426) para aprender más acerca de las sombras de la WWDC 2010 Vídeos disponibles aquí: WWDC 2010 Session Videos
Éste funcionó perfectamente para mí, en lugar de agregar una celda extra, como sugieren muchas otras soluciones. También, aunque debes desarmarlo si tus células son reutilizadas, ya que solo quería esto para la última celda de una tabla. – Openside
La sugerencia de rendimiento fue de gran ayuda, sin que las celdas de la tabla shadowPath estén realmente agitadas cuando se deslizan. Establecer shadowPath es un poco no obvio y realmente no aparece en ningún documento que pueda encontrar. –
si pongo la sombra en tableView, no en la celda, cuando se desplaza el límite de la vista de tabla cambia. ¿Cómo actualizo shadowPath para que coincida? –