J'ai créé cette fonction pour arrondir les coins spécifiques sur un UIImageView
:UIImage disparaît lorsque vous essayez d'ajouter une couche masque
func roundCorners(corners: [UIRectCorner], imageView: UIImageView) -> CAShapeLayer {
let maskPath = UIBezierPath.init(roundedRect: imageView.bounds, byRoundingCorners:[.topLeft], cornerRadii: CGSize.init(width: 7.0, height: 7.0))
let maskLayer = CAShapeLayer()
maskLayer.frame = imageView.frame
maskLayer.path = maskPath.cgPath
return maskLayer
}
Quand je l'applique à l'image topLeftImage
comme ceci: topLeftImage.layer.mask = roundCorners(corners: [.topLeft], imageView: topLeftImage)
, il fait l'image disparaître . Voici comment je déclare l'image:
let topLeftImage: UIImageView = {
let iv = UIImageView()
iv.image = #imageLiteral(resourceName: "myImage")
iv.layoutIfNeeded()
iv.translatesAutoresizingMaskIntoConstraints = false
iv.contentMode = UIViewContentMode.scaleAspectFill
iv.layer.masksToBounds = true
iv.clipsToBounds = true
return iv
}()
Comment puis-je appliquer un masque de calque et ont encore l'image apparaît à l'écran.
ajouter var paresseux au lieu d'utiliser – karthikeyan
laisser sans rapport, mais votre méthode toujours autour du même coin, je pense que vous devez changer 'laisser maskPath = UIBezierPath.init (roundedRect: imageView.bounds, byRoundingCorners: [.topLeft], cornerRadii: CGSize.init (largeur: 7.0, hauteur: 7.0)) 'par' let maskPath = UIBezierPath.init (arrondiRect: imageView.bounds, byRoundingCorners: coins, cornerRadii: CGSize.init (largeur: 7.0, height: 7.0)) 'si vous voulez vraiment que votre méthode fonctionne en utilisant des paramètres définis –