Je configure la propriété cornerRadius
pour UILabel
. Son bon fonctionnement toutes les versions de iOS < 7.1
. Code suivant que j'ai utilisé,
UILabel *originaltagLbl = [[UILabel alloc]initWithFrame:CGRectMake(startX, startY, 100,30)];
[originaltagLbl setFont:[UIFont fontWithName:@"MuseoSans-500" size:15]];
[originaltagLbl setTextAlignment:NSTextAlignmentCenter];
[originaltagLbl setTextColor:UIColorFromRGB(0xffffff)];
originaltagLbl.backgroundColor = [UIColor redColor];
originaltagLbl.layer.cornerRadius = 5;
originaltagLbl.layer.borderColor = [UIColor redColor].CGColor;
originaltagLbl.layer.borderWidth = 1;
[scrollView addSubview:originaltagLbl];
si j'utilise ceci, il suffit d'afficher simplement l'étiquette sous forme de boîte rectangulaire, alors comment définir le rayon d'angle de UILabel
dans iOS 7.1
Ajoutez la ligne suivante à votre code:
originaltagLbl.layer.masksToBounds = YES;
Pour plus d'informations, voir this SO answer, ou lire documentation .
Swift 3/4/5
yourlabel.layer.cornerRadius = 8 //your desire radius
yourlabel.layer.masksToBounds = true
Essayez de définir la propriété clipsToBounds
de UILabel sur YES
Il est vrai que clipsToBounds fonctionne en 7.1, mais le problème est dans les situations où vous faites défiler/animer, c'est vraiment lent et rend tout lag.
Il suffit de définir la couleur d'arrière-plan sur le calque au lieu de l'uiview.
Voir: ILabel layer cornerRadius impact négatif sur les performances
Solution Swift 2:
@IBOutlet weak var your_label: UILabel!
your_label.layer.cornerRadius = 5
your_label.layer.masksToBounds = true
Vous pouvez utiliser le code ci-dessous,
[[myLabel layer] setCornerRadius:5.0f];
[[myLabel layer] setMasksToBounds:YES];
merci,