Vista com sombra, cantos arredondados e desenho personalizado

Eu tenho que criar um costumeUIView que terá cantos arredondados, uma borda, uma sombra e suadrawRect() O método é substituído para fornecer código de desenho personalizado com o qual várias linhas retas são desenhadas na vista (preciso usar uma abordagem rápida e leve aqui, pois muitas dessas vistas podem ser renderizadas).

O problema que estou enfrentando atualmente é que a sombra não se aplica mais aos cantos arredondados assim que eu substituirdrawRect() na classe view (mesmo sem nenhum código personalizado ainda). Veja a imagem em anexo para a diferença:

No controlador de exibição, estou usando o seguinte 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;

No substituídodrawContext() Eu usaria 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);

Mas, como dito acima, o problema de sombra ocorre mesmo sem esse código adicionado.

Existe alguma outra / melhor maneira de desenhar elementos leves em uma visão que não seja essa abordagem compatível com cantos arredondados e sombras? Não quero adicionar visualizações extras ou contextos de imagem desnecessários à exibição, pois eles precisam ser leves e com bom desempenho.

questionAnswers(16)

yourAnswerToTheQuestion