48

我正在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];

如果我使用它,只需将标签显示为矩形框,那么如何设置UILabelin的角半径iOS 7.1

4

6 回答 6

139

将下一行添加到您的代码中:

// Swift:
originaltagLbl.layer.masksToBounds = true

// Objective C:
originaltagLbl.layer.masksToBounds = YES;

有关信息,请参阅SO 答案,或阅读文档

于 2014-03-12T10:24:39.950 回答
9

斯威夫特 3/4/5

    yourlabel.layer.cornerRadius = 8 //your desire radius
    yourlabel.layer.masksToBounds = true
于 2017-03-02T11:00:08.430 回答
2

尝试将 UILabel 的clipsToBounds属性设置为 YES

于 2014-03-12T10:25:57.517 回答
1

确实,clipsToBounds 在 7.1 中有效,但问题是在您滚动/动画的情况下,它真的很慢并且让一切变得滞后。

只需要在图层而不是 uiview 上设置背景颜色。

请参阅: UILabel 层cornerRadius 对性能产生负面影响

于 2014-07-04T21:15:23.010 回答
1

斯威夫特 2 解决方案:

@IBOutlet weak var your_label: UILabel!

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

于 2016-08-22T14:49:27.647 回答
0

您可以使用以下代码,

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

谢谢,

于 2016-03-11T11:37:23.080 回答