Comment puis-je créer un rond acculé UILabel sur l'iPhone?
Est-il construit de manière à créer des coins arrondis UILabels? Si la réponse est non, comment peut-on aller sur la création d'un tel objet?
Vous devez vous connecter pour publier un commentaire.
iOS 3.0 et plus tard
iPhone OS 3.0 et versions ultérieures prennent en charge le
cornerRadius
bien sur laCALayer
classe. Chaque point de vue a unCALayer
exemple que vous pouvez manipuler. Cela signifie que vous pouvez obtenir des coins arrondis en une seule ligne:Vous aurez besoin de
#import <QuartzCore/QuartzCore.h>
et un lien vers le QuartzCore cadre pour obtenir l'accès à CALayer les en-têtes et les propriétés.Avant iOS 3.0
Une façon de le faire, que j'ai utilisé récemment, est de créer une sous-classe UIView qui dessine simplement un rectangle arrondi, et ensuite faire le UILabel ou, dans mon cas, UITextView, une sous-vue à l'intérieur d'elle. Plus précisément:
UIView
sous-classe et le nom de quelque chose commeRoundRectView
.RoundRectView
'sdrawRect:
méthode, dessiner un chemin à travers les limites de l'affichage à l'aide de Graphiques de Base des appels comme CGContextAddLineToPoint() pour les bords et et CGContextAddArcToPoint() pour les coins arrondis.UILabel
instance et d'en faire une sous-vue de la RoundRectView.label.frame = CGRectInset(roundRectView.bounds, 8, 8);
)Vous pouvez placer le RoundRectView sur une vue à l'aide de l'Interface Builder si vous créez un générique UIView et puis le changement de sa classe à l'aide de l'inspecteur. Vous ne verrez pas le rectangle jusqu'à ce que vous compilez et exécutez votre application, mais au moins vous serez en mesure de placer la sous-vue et de se connecter aux points de vente ou des actions si nécessaire.
Pour les appareils avec iOS 7.1 ou version ultérieure, vous devez ajouter:
Pour Swift IOS8 partir basée sur OScarsWyck réponse:
YES
àtrue
.UILabel
appelé:myLabel
.#import <QuartzCore/QuartzCore.h>
dans votre
viewDidLoad
écrire cette ligne:self.myLabel.layer.cornerRadius = 8;
Bonne chance
Vous pouvez faire des bords arrondis avec la largeur de la frontière de tout contrôle de cette manière:-
Il suffit de remplacer
lblName
avec votreUILabel
.Remarque:- N'oubliez pas d'importer
<QuartzCore/QuartzCore.h>
Une autre méthode consiste à placer un png derrière la UILabel. J'ai des vues avec plusieurs étiquettes qui recouvrent un même arrière-plan de la png qui a toutes les œuvres d'art pour les étiquettes individuelles.
J'ai fait une swift
UILabel
sous-classe pour obtenir cet effet. En outre, j'ai automatiquement la couleur du texte pour qu'il soit noir ou blanc pour un maximum de contraste.Résultat
Utilisé ce Messages:
Aire de jeux
Il suffit de coller ce dans une aire de Jeux iOS:
xCode 7.3.1 iOS 9.3.2
Si vous voulez coin arrondi d'objets de l'INTERFACE utilisateur comme (
UILabel
,UIView
,UIButton
,UIImageView
) par storyboard puis définissezclip to bounds
vrai et définirUser Defined Runtime Attributes
chemin de Clé commelayer.cornerRadius
, type = Nombre et de la valeur = 9 (en tant que votre condition)Dans Monotouch /Xamarin.iOS, j'ai résolu le même problème comme ceci:
Œuvres parfaites Swift 2.0
Avez-vous essayez d'utiliser la
UIButton
à partir de l'Interface builder (qui a arrondi les angles) et d'expérimenter avec les paramètres pour la faire ressembler à une étiquette. si vous désirez vous afficher texte statique à l'intérieur.Swift 3
Si vous voulez arrondies étiquette avec la couleur d'arrière-plan, en plus de la plupart des autres réponses, vous devez définir
layer
's couleur d'arrière-plan ainsi. Il ne fonctionne pas lors de la configuration deview
couleur d'arrière-plan.Si vous utilisez la mise en page, voulez rembourrage autour de l'étiquette et ne souhaitez pas définir la taille de l'étiquette manuellement, vous pouvez créer UILabel sous-classe et remplacer
intrinsincContentSize
propriété:De combiner les deux, vous aurez également besoin de mettre
label.textAlignment = center
, sinon le texte sera aligné à gauche."cornerRadius" est la propriété de clé pour définir les bords arrondis, où si vous utilisez le même style pour toutes les étiquettes dans votre application, je recommande, pour une méthode d'extension.
Code:
De sortie:
Pourquoi la méthode d'Extension?
Créer rapidement un fichier et ajoutez le code suivant, qui a l'Extension de la méthode de la "UILabel" de la classe, où cette méthode est définie par l'utilisateur, mais fonctionne pour tous les étiquette dans votre demande et vous aider à maintenir la cohérence et la propreté du code, si vous modifiez un style à l'avenir exiger que dans la méthode d'extension.
Selon ce exactement que vous faites, vous pourriez faire une image et la définir comme fond par programmation.