web-dev-qa-db-ja.com

UILabelのCorner RadiusプロパティがiOS 7.1で機能しない

cornerRadiusUILabelプロパティを設定しています。 iOS < 7.1のすべてのバージョンで正常に動作します。私が使用した次のコード、

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];

これを使用する場合、単にラベルを四角形のボックスとして表示するだけなので、iOS 7.1UILabelの角の半径を設定する方法

43
Surfer

コードに次の行を追加します。

originaltagLbl.layer.masksToBounds = YES;

詳細については、 this SO answer、または documentation を参照してください。

128
iOS Dev

スイフト3/4/5

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

UILabelのclipsToBoundsプロパティをYESに設定してみてください

2
nnarayann

ClipsToBoundsが7.1で機能するのは事実ですが、問題はスクロール/アニメーション化が非常に遅く、すべてが遅延する状況にあります。

必要なのは、uiviewではなくレイヤーの背景色を設定することだけです。

参照: ILabelレイヤーcornerRadiusはパフォーマンスに悪影響を及ぼします

1
Aaron Zinman

Swift 2ソリューション:

@IBOutlet weak var your_label: UILabel!

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

以下のコードを使用できますが、

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

おかげで、

0
Kupendiran iOS