UITableViewCell esquinas redondeadas y subvistas de clips

No puedo encontrar nada en ningún lugar (motores de búsqueda, documentos, aquí, etc.) que muestre cómo crear esquinas redondeadas (especialmente en una vista de tabla agrupada) en un elemento que también recorte las subvistas.

Tengo un código que crea correctamente un rectángulo redondeado fuera de un camino con 4 arcos (las esquinas redondeadas) que se ha probado en el método drawRect: en mi subclase uitableviewcell. El problema es que las subvistas, que resultan ser uibuttons con sus uiimageviews internas, no obedecen al CGContextClip () que obedece el uitableviewcell.

Aquí está el código:

- (void)drawRect:(CGRect)rect
{       
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGFloat radius = 12;
    CGFloat width = CGRectGetWidth(rect);
    CGFloat height = CGRectGetHeight(rect);

    // Make sure corner radius isn't larger than half the shorter side
    if (radius > width/2.0)
        radius = width/2.0;
    if (radius > height/2.0)
        radius = height/2.0;    

    CGFloat minx = CGRectGetMinX(rect) + 10;
    CGFloat midx = CGRectGetMidX(rect);
    CGFloat maxx = CGRectGetMaxX(rect) - 10;
    CGFloat miny = CGRectGetMinY(rect);
    CGFloat midy = CGRectGetMidY(rect);
    CGFloat maxy = CGRectGetMaxY(rect);

    [[UIColor greenColor] set];


    CGContextBeginPath(context);

    CGContextMoveToPoint(context, minx, midy);

    CGContextAddArcToPoint(context, minx, miny, midx, miny, radius);
    CGContextAddArcToPoint(context, maxx, miny, maxx, midy, radius);
    CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, radius);
    CGContextAddArcToPoint(context, minx, maxy, minx, midy, radius);

    CGContextClip(context);
    CGContextFillRect(context, rect);

    [super drawRect:rect];    
}

Debido a que este caso específico es estático (solo se muestra en 1 fila específica de botones), puedo editar las imágenes que se utilizan para que los botones obtengan el efecto deseado.

SIN EMBARGO, Tengo otro caso que es dinamico. Específicamente, una tabla agrupada con muchos resultados basados ​​en la base de datos que mostrarán las fotos que pueden estar en la primera o la última fila con esquinas redondeadas y, por lo tanto, deben recortarse).

Asi que,¿Es posible crear un CGContextClip () que también recorte las subvistas? ¿Si es así, cómo?

Respuestas a la pregunta(5)

Su respuesta a la pregunta