Cantos redondos da UIView em Swift

Estou tentando arredondar os cantos superiores usando o código abaixo

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
    }

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

Mas está arredondando um lado da vista:

isso está em um tableView sectionHeader se eu rolar para baixo e arredondar para cima usando o mesmo código:

E também os cantos superiores da vista com desconto são arredondados usando a mesma função.

obrigado pela ajuda.

Atualizar se eu fixar a largura na vista, funcionará bem.

questionAnswers(2)

yourAnswerToTheQuestion