Round Top Coins d'une UIButton en Swift
Je sais que je peux le tour de tous les quatre coins à l'aide de:
myBtn.layer.cornerRadius = 8
myBtn.layer.masksToBounds = true
Depuis je veux seulement la deuxième ronde, j'ai fait quelques recherches et trouvé cette:
extension UIView {
func roundCorners(corners:UIRectCorner, radius: CGFloat) {
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let mask = CAShapeLayer()
mask.path = path.CGPath
self.layer.mask = mask
}
}
Qui est appelé comme ceci:
view.roundCorners([.TopLeft , .TopRight], radius: 10)
Mais cela ne fonctionne pas pour une UIButton. Lorsque je change l'extension de type UIButton et de passer à un bouton , la sortie ressemble à ceci:
La question est, comment puis-je adapter ce travail sur un UIButton?
Veuillez envisager d'accepter ma réponse, parce qu'elle est la plus précise de la réponse au problème. Les futurs visiteurs de cette question ne sera pas contente tout simplement de voir un tas de code qui fonctionne, mais n'explique pas pourquoi il travaille (que c'est ce qu'actuellement accepté de répondre à n'), mais plutôt en le voyant où le problème – et qui est cloué par ma réponse.
voir ma réponse ici: stackoverflow.com/a/40222533/2594699
voir ma réponse ici: stackoverflow.com/a/40222533/2594699
OriginalL'auteur Dave G | 2016-05-11
Vous devez vous connecter pour publier un commentaire.
L'ajout de l'Extension de UIButton:
Appel dans viewDidAppear/viewDidLayoutSubviews:
Bouton Angle De Sortie:
Ne fonctionne pas pour quand les boutons sont en vue de la pile. Lors de l'arrondi de coin en bas à gauche et à droite, il arrondit seulement en bas à gauche. Lors de l'utilisation de boutons qui ne sont pas incorporés dans une pile de vue, il fonctionne tout à fait bien
OriginalL'auteur Kirit Modi
Pour swift 3 Kirit Modi réponse est changé:
Au début de l'extension du fichier n'oubliez pas d'ajouter:
Si vous souhaitez une extension pour une UIView avec l'option de l'arrondi en haut ou en bas des coins, vous pouvez utiliser:
Qui est appelé pour un bouton:
OriginalL'auteur C. Kontos
Swift 4: Pour la dernière version iOS 11,
Plus tôt iOS (10,9 etc) Versions (fonctionne pour iOS 11 trop)
OriginalL'auteur Naishta
Mise à jour de votre extension sera comme ceci:
La couche de forme (masque) a besoin de connaître le cadre
OriginalL'auteur Hossam Ghareeb
iOS 11 a rendu très facile à arrondir les angles. Le code ci-dessous tours haut à gauche et en bas à droite.
OriginalL'auteur dsunku
Vous avez oublié de mettre l'image de votre calque de forme:
OriginalL'auteur return true
Utiliser ce Code,
de l'espoir à ses précieux
view.roundCorners([.TopLeft , .TopRight], radius: 10)
, vous pouvez modifier votre réponse une foisya je sais interlocuteur demander, mais ce code ci-dessus est correcte
OriginalL'auteur Iyyappan Ravi