UILabel圆角在iOS 7.1中变得清晰

时间:2014-04-04 06:25:06

标签: ios iphone objective-c uilabel ios7.1

自iOS7.1更新以来,我的应用程序中的UILabels已经改变了外观。 在操作系统更新之前,我的所有UILabel都有圆角。对于iOS7.1,它们现在都有尖角。

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



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

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

2 个答案:

答案 0 :(得分:13)

设置theLabel.clipsToBounds = YEStheLabel.layer.masksToBounds = YES。要么工作。

答案 1 :(得分:0)

使用此

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