UILabel的Corner Radius属性在iOS 7.1中不起作用

时间:2014-03-12 10:20:10

标签: ios iphone objective-c ios7.1

我正为cornerRadius设置UILabel属性。它的工作正常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];

如果我使用它,只需将标签显示为矩形框,那么如何在UILabel

中设置iOS 7.1的圆角半径

6 个答案:

答案 0 :(得分:127)

在代码中添加下一行:

originaltagLbl.layer.masksToBounds = YES;

有关信息,请参阅this SO回答,或阅读documentation

答案 1 :(得分:5)

Swift 3/4

<solutionFileIOClass>

答案 2 :(得分:2)

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

答案 3 :(得分:1)

clipToBounds确实可以在7.1中运行,但问题出在滚动/动画的情况下,它非常慢并且使一切都变得迟钝。

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

请参阅: UILabel layer cornerRadius negatively impacting performance

答案 4 :(得分:0)

您可以使用以下代码,

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

感谢,

答案 5 :(得分:0)

Swift 2解决方案:

&#13;
&#13;
@IBOutlet weak var your_label: UILabel!

your_label.layer.cornerRadius = 5
your_label.layer.masksToBounds = true
&#13;
&#13;
&#13;