Ma vue de connexion a une sous-vue qui a un UIActivityView
et un UILabel
dicton «Connexion…». Cette sous-vue a des coins qui ne sont pas arrondis. Comment puis-je les arrondir?
Existe-t-il un moyen de le faire à l'intérieur de mon xib?
ios
cocoa-touch
uiview
itsaboutcode
la source
la source
cornerRadius
propriété à la table en utilisant Interface Builder uniquement, sans avoir à utiliser des images pré-rendues ou à la définir dans le code.Réponses:
Essaye ça
...
Remarque: Si vous essayez d'appliquer des coins arrondis à
UIViewController
la vue d'un, il ne doit pas être appliqué dans le constructeur du contrôleur de vue, mais plutôt dans-viewDidLoad
, aprèsview
est réellement instancié.la source
Vous pouvez également utiliser la fonction Attributs d'exécution définis par l' utilisateur du générateur d'interface pour définir le chemin
layer.cornerRadius
d' accès à une valeur. Assurez-vous cependant d'inclure laQuartzCore
bibliothèque.Cette astuce fonctionne également pour définir layer.borderWidth mais cela ne fonctionnera pas
layer.borderColor
car cela attend unCGColor
pas unUIColor
.Vous ne pourrez pas voir les effets dans le storyboard car ces paramètres sont évalués au moment de l'exécution.
la source
Clip Subviews
option pour la vue IBVous pouvez maintenant utiliser une catégorie rapide dans UIView (code sous l'image) avec @IBInspectable pour afficher le résultat sur le storyboard (si vous utilisez la catégorie, utilisez uniquement cornerRadius et non layer.cornerRadius comme chemin de clé.
la source
@IBDesignable
pour obtenir un aperçu en direct dans IB! (Plus sur nshipster.com/ibinspectable-ibdesignable )Rapide
Réponse courte:
Réponse supplémentaire
Si vous êtes parvenu à cette réponse, vous en avez probablement déjà vu assez pour résoudre votre problème. J'ajoute cette réponse pour donner un peu plus d'explications visuelles sur les raisons pour lesquelles les choses font ce qu'elles font.
Si vous commencez avec un régulier,
UIView
il a des coins carrés.Vous pouvez lui donner des coins arrondis en modifiant la
cornerRadius
propriété de la vuelayer
.Des valeurs de rayon plus grandes donnent des coins plus arrondis
et des valeurs plus petites donnent des coins moins arrondis.
Cela pourrait suffire à résoudre votre problème. Cependant, une vue peut parfois avoir une sous-vue ou une sous-couche qui dépasse les limites de la vue. Par exemple, si je devais ajouter une vue secondaire comme celle-ci
ou si je devais ajouter une sous- couche comme celle-ci
Ensuite, je me retrouverais avec
Maintenant, si je ne veux pas que les choses dépassent des limites, je peux le faire
ou ca
ce qui donne ce résultat:
Les deux
clipsToBounds
etmasksToBounds
sont équivalents . C'est juste que le premier est utilisé avecUIView
et le second est utilisé avecCALayer
.Voir également
la source
blueView.frame.size.height/2
) donne un coin parfaitement arrondi.Une approche différente de celle d'Ed Marty:
Vous avez besoin de setMasksToBounds pour qu'il charge tous les objets d'IB ... j'ai un problème où ma vue a été arrondie, mais je n'ai pas eu les objets d'IB: /
cela l'a corrigé = D j'espère que ça aide!
la source
Comme décrit dans cet article de blog , voici une méthode pour contourner les coins d'un UIView:
La partie intéressante à ce sujet est que vous pouvez sélectionner les coins que vous souhaitez arrondir.
la source
Vous devez d'abord importer le fichier d'en-tête
<QuartzCore/QuartzCore.h>
Ne manquez pas d'utiliser -
setMasksToBounds
, sinon l'effet peut ne pas être affiché.la source
Vous pouvez utiliser la
UIView
classe personnalisée suivante qui peut également modifier la couleur et la largeur de la bordure. En l'état,IBDesignalbe
vous pouvez également modifier les attributs dans le générateur d'interface.la source
la source
Swift 4 - Utilisation d'IBDesignable
la source
layer.cornerRadius
de revenir à son état d'origine? (ei comment le storyboard de xcode sait-il définircornerRadius
uniquement après l'UIView
initialisation de l'original )?la source
- SwiftUI
Dans SwiftUI, vous pouvez utiliser le
cornerRadius
modificateur directement sur celui queView
vous voulez. Par exemple de cette question:Notez qu'il n'y a plus de rayon de type diamant, donc même si vous définissez le cornerRadius sur plus de la moitié de la hauteur , il arrondira en douceur.
Consultez cette réponse pour savoir comment arrondir des coins spécifiques dans SwiftUI
la source
Veuillez importer
Quartzcore framework
puis vous devez définirsetMaskToBounds
surTRUE
cette ligne la plus importante.Alors:
[[yourView layer] setCornerRadius:5.0f];
la source
la source
Faites cela par programme en obj c
Nous pouvons également le faire à partir de stoaryboard.
la source
si le coin rond ne fonctionne pas dans viewDidload (), il est préférable d'écrire du code dans viewDidLayoutSubview ()
J'espère que cela t'aides!
la source
Vous pouvez également utiliser une image:
la source
set cornerRadious Property for round View
set masksToBounds La valeur booléenne de l'image ne sera pas toujours dessinée en dehors de la limite du rayon d'angle
la source
Utilisation de l'extension UIView:
Usage:
la source
Dans Swift 4.2 et Xcode 10.1
la source
ON Xcode 6 Votre essai
ou
la source