Esquinas redondeadas de una UIView en Swift

Estoy tratando de redondear las esquinas superiores usando el siguiente código

func roundCorners(corners:UIRectCorner, radius: CGFloat) {
        let path = UIBezierPath(roundedRect: self.bounds,
                                byRoundingCorners: corners,
                                cornerRadii: CGSize(width: radius, height: radius))
        let maskLayer = CAShapeLayer()
        maskLayer.frame = self.bounds
        maskLayer.path = path.cgPath
        self.layer.mask = maskLayer
    }

utilizarmyView.roundCorners(corners:[.topLeft, .topRight], radius: radius)

Pero está redondeando un lado de la vista:

esto está en una tableView sectionHeader si me desplazo hacia abajo y luego hacia arriba redondeado con el mismo código:

Y también las esquinas de la vista de descuento superior se redondean con la misma función.

gracias por la ayuda.

Actualizar si arreglo el ancho de la vista, entonces funciona bien.

Respuestas a la pregunta(2)

Su respuesta a la pregunta