UIView con sombra, esquinas redondeadas y dibujo personalizado

Tengo que crear una costumbreUIView que tendrá esquinas redondeadas, un borde, una sombra y sudrawRect() El método se reemplaza para proporcionar un código de dibujo personalizado con el que se dibujan varias líneas rectas en la vista (necesito usar un enfoque rápido y liviano aquí, ya que muchas de estas vistas pueden representarse).

El problema que estoy enfrentando actualmente es que la sombra ya no se aplica a las esquinas redondas tan pronto como anulodrawRect() en la clase de vista (incluso sin ningún código personalizado todavía en ella). Vea la imagen adjunta para la diferencia:

En el controlador de vista estoy usando el siguiente código:

    view.layer.cornerRadius = 10;
    view.layer.masksToBounds = true;

    view.layer.borderColor = UIColor.grayColor().CGColor;
    view.layer.borderWidth = 0.5;

    view.layer.contentsScale = UIScreen.mainScreen().scale;
    view.layer.shadowColor = UIColor.blackColor().CGColor;
    view.layer.shadowOffset = CGSizeZero;
    view.layer.shadowRadius = 5.0;
    view.layer.shadowOpacity = 0.5;
    view.layer.masksToBounds = false;
    view.clipsToBounds = false;

En lo anuladodrawContext() Yo usaría algo como:

    var context:CGContext = UIGraphicsGetCurrentContext();
    CGContextSetStrokeColorWithColor(context, UIColor.redColor().CGColor);
    // Draw them with a 2.0 stroke width so they are a bit more visible.
    CGContextSetLineWidth(context, 2.0);
    CGContextMoveToPoint(context, 0.0, 0.0); //start at this point
    CGContextAddLineToPoint(context, 20.0, 20.0); //draw to this point
    CGContextStrokePath(context);

Pero como se dijo anteriormente, el problema de sombra ocurre incluso sin este código agregado.

¿Hay alguna otra / mejor manera de dibujar elementos ligeros en una vista que no sea este enfoque que sea compatible con esquinas redondeadas y sombras? No quiero agregar vistas adicionales innecesarias o contextos de imagen a la vista ya que estos deben ser ligeros y de alto rendimiento.

Respuestas a la pregunta(16)

Su respuesta a la pregunta