自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];
答案 0 :(得分:13)
设置theLabel.clipsToBounds = YES
或theLabel.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];