¿Cómo redondear solo las esquinas en un UITableView?

Estoy tratando de redondear solo las esquinas superior derecha e izquierda de mi vista de tabla. Estoy usando el siguiente código y solo parece estar redondeando la esquina superior izquierda...

CAShapeLayer *topLayer = [CAShapeLayer layer];
UIBezierPath *roundedPath = 
[UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:UIRectCornerTopRight | UIRectCornerTopLeft cornerRadii:CGSizeMake(9.f, 9.0f)];    
topLayer.path = [roundedPath CGPath];

preguntado el 12 de junio de 12 a las 20:06

stackoverflow.com/a/5826698/855738 Usé esta respuesta para hacer más o menos lo mismo:

Sé que es una publicación antigua, pero solo asegúrate de tenerla. [tableView.layer setMasksToBound: YES] y debería estar bien y elegante -

Ver la respuesta aceptada [aquí][1]. Puede ser el mismo problema. [1]: stackoverflow.com/questions/26934231/… -

1 Respuestas

Espero que esto funcione. Encuentra los caminos de la esquina superior para crear una capa de máscara

UIBezierPath *PathToMask;
PathToMask = [UIBezierPath bezierPathWithRoundedRect:self.testView.bounds
                                 byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight)
                                       cornerRadii:CGSizeMake(8.0, 8.0)];

Cree una máscara de capa de forma usando UIBezierPath maskPath

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; 
maskLayer.frame =self.testView.bounds;
maskLayer.path = PathToMask.CGPath;

establecer la capa de máscara maskLayer

self.testView.layer.mask = maskLayer;

Respondido 05 Feb 15, 05:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.