UILabel 圆角在 iOS 7.1 中变得清晰

Posted

技术标签:

【中文标题】UILabel 圆角在 iOS 7.1 中变得清晰【英文标题】:UILabel rounded corners turn out sharp in iOS 7.1 【发布时间】:2014-04-04 06:25:05 【问题描述】:

自从更新到 ios7.1 后,我的应用中的 UILabel 的外观发生了变化。 在操作系统更新之前,我所有的 UILabel 都按照我的意图进行了圆角处理。在 iOS7.1 中,它们现在都有尖角了。

我在下面插入我使用的代码。任何有关如何将 UILabel 恢复为我的原始外观的帮助将不胜感激。


视图控制器的实现文件顶部:

#import <QuartzCore/QuartzCore.h>

创建 UILabel 的代码。我已经用评论标记了(我认为的)相关行。

    CGRect labelRect = CGRectMake(20, 20, 200, 100);

    NSString *theText = [self info];
    CGSize size = [theText sizeWithFont:[UIFont systemFontOfSize:15] constrainedToSize:CGSizeMake(labelRect.size.width, 10000) lineBreakMode:NSLineBreakByWordWrapping];

    UILabel *theLabel = [[UILabel alloc] initWithFrame:labelRect];
    [theLabel setNumberOfLines:0];
    [theLabel setText:theText];
    [[theLabel layer] setCornerRadius:15]; // THIS IS THE RELEVANT LINE

    // For iOS7
    if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1)
        [theLabel setBackgroundColor:[UIColor whiteColor]];

    [[self view] addSubview:theLabel];

【问题讨论】:

尝试将标签的属性clipsToBounds设置为YES 【参考方案1】:

设置theLabel.clipsToBounds = YES,或theLabel.layer.masksToBounds = YES。任何一个都可以。

【讨论】:

只尝试了[[theLabel layer] setMasksToBounds:YES],但效果和我的一样。【参考方案2】:

使用这个

CGRect labelRect = CGRectMake(20, 20, 200, 100);

NSString *theText = [self info];
CGSize size = [theText sizeWithFont:[UIFont systemFontOfSize:15] constrainedToSize:CGSizeMake(labelRect.size.width, 10000) lineBreakMode:NSLineBreakByWordWrapping];

UILabel *theLabel = [[UILabel alloc] initWithFrame:labelRect];
[theLabel setNumberOfLines:0];
[theLabel setText:theText];
[[theLabel layer] setCornerRadius:15]; // THIS IS THE RELEVANT LINE
[theLabel.layer setMasksToBounds:YES]; ///missing in your code
// For iOS7
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1)
    [theLabel setBackgroundColor:[UIColor whiteColor]];

[[self view] addSubview:theLabel];

【讨论】:

以上是关于UILabel 圆角在 iOS 7.1 中变得清晰的主要内容,如果未能解决你的问题,请参考以下文章

UIlabel layer.cornerRadius 在 iOS 7.1 中不起作用

UILabel 的背景颜色在重新加载表后变得清晰

在自定义单元格中调整 iOS 7.1 中的 UILabel 大小

UILabel设置圆角无效

如何在 iPhone 上创建圆角 UILabel?

如何在iOS上仅在具有清晰颜色的模糊视图底部获得圆角?