web-dev-qa-db-fra.com

La propriété Corner Radius de UILabel ne fonctionne pas dans iOS 7.1

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

43
Surfer

Ajoutez la ligne suivante à votre code:

originaltagLbl.layer.masksToBounds = YES;

Pour plus d'informations, voir this SO answer, ou lire documentation .

128
iOS Dev

Swift 3/4/5

    yourlabel.layer.cornerRadius = 8 //your desire radius
    yourlabel.layer.masksToBounds = true
6
Shakeel Ahmed

Essayez de définir la propriété clipsToBounds de UILabel sur YES

2
nnarayann

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

1
Aaron Zinman

Solution Swift 2:

@IBOutlet weak var your_label: UILabel!

your_label.layer.cornerRadius = 5
your_label.layer.masksToBounds = true
0
Fox5150

Vous pouvez utiliser le code ci-dessous,

[[myLabel layer] setCornerRadius:5.0f];
[[myLabel layer] setMasksToBounds:YES];

merci,

0
Kupendiran iOS