UITableViewCell: esquinas redondeadas y sombra

Estoy cambiando el ancho de una UITableViewCell para que la celda sea más pequeña pero el usuario aún puede desplazarse a lo largo de los bordes de la vista de tabla.

override func layoutSubviews() {        
    // Set the width of the cell
    self.bounds = CGRectMake(self.bounds.origin.x, self.bounds.origin.y, self.bounds.size.width - 40, self.bounds.size.height)
    super.layoutSubviews()
}

Luego doy la vuelta a las esquinas:

cell.layer.cornerRadius = 8
cell.layer.masksToBounds = true

Todo bien hasta ahora. El problema sucede con la sombra. Los límites están enmascarados, por lo que la sombra obviamente no aparecerá. He buscado otras respuestas, pero parece que no puedo entender cómo redondear las esquinas a lo largo de los límites.y Muestra la sombra.

cell.layer.shadowOffset = CGSizeMake(0, 0)
cell.layer.shadowColor = UIColor.blackColor().CGColor
cell.layer.shadowOpacity = 0.23
cell.layer.shadowRadius = 4

Entonces, mi pregunta: ¿cómo reduzco el ancho, redondeo las esquinas y agrego una sombra a un UITableViewCell al mismo tiempo?

Actualizar: Intentando la respuesta de R Moyer

Respuestas a la pregunta(9)

Su respuesta a la pregunta