关于 Label 文字样式的一些设置
- (void)loadView
{
[super loadView];
//1.UILable的大小自适应实例:
// ***** label基本属性 *****
UILabel *myLabel=[[UILabel alloc] initWithFrame:CGRectMake(50, 20, 2, 2)]; // 设定位置与大小
// [myLabel setFont:[UIFont fontWithName:@"Helvetica" size:20.0]]; // 字体和大小
// myLabel.font = [UIFont boldSystemFontOfSize:18]; // 黑体18号字
[myLabel setNumberOfLines:0]; // 行数,只有设为 0 才可以自适应
[myLabel setBackgroundColor:[UIColor clearColor]]; // 背景色
myLabel.shadowColor = [UIColor darkGrayColor]; // 阴影颜色
myLabel.shadowOffset = CGSizeMake(1.0,1.0); // 阴影偏移量
NSString *text = @"abcdefghigklmnopqrstuvwxyz";
UIFont *font = [UIFont fontWithName:@"Helvetica" size:20.0];
// ******* 根据要显示的text计算label高度 *******
// iOS 7 之后被弃用
CGSize size = [text sizeWithFont:font constrainedToSize:CGSizeMake(175.0f, 2000.0f) lineBreakMode:UILineBreakModeWordWrap];
// iOS 7 后 :
{
NSDictionary * tdic = [NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName,nil];
size =[text boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin |NSStringDrawingUsesFontLeading attributes:tdic context:nil].size;
}
CGRect rect = myLabel.frame;
rect.size = size;
[myLabel setFrame:rect];
[myLabel setText:text];
myLabel.shadowColor = [UIColor darkGrayColor];//阴影颜色
myLabel.shadowOffset = CGSizeMake(2.0,2.0);//阴影大小
[self.view addSubview:myLabel];
//2.UILable的基本用法
UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(50.0, 80.0, 200.0, 30.0)];
UILabel *label2 = [[UILabel alloc]initWithFrame:CGRectMake(50.0, 140.0, 200.0, 50.0)];
UILabel *label3 = [[UILabel alloc]initWithFrame:CGRectMake(50.0, 200.0, 200.0, 50.0)];
UILabel *label4 = [[UILabel alloc]initWithFrame:CGRectMake(50.0, 260.0, 200.0, 50.0)];
UILabel *label5 = [[UILabel alloc]initWithFrame:CGRectMake(50.0, 320.0, 200.0, 50.0)];
UILabel *label6 = [[UILabel alloc]initWithFrame:CGRectMake(50.0, 380.0, 200.0, 50.0)];
UILabel *label7 = [[UILabel alloc]initWithFrame:CGRectMake(50.0, 440.0, 200.0, 50.0)];
//设置显示文字
label1.text = @"label1";
label2.text = @"label2";
label3.text = @"label3--label3--label3--label3--label3--label3--label3--label3--label3--label3--label3--11个";
label4.text = @"label4--label4--label4--label4--4个~~~";
label5.text = @"label5--label5--label5--label5--label5--label5--6个";
label6.text = @"label6";
label7.text = @"label7";
//设置字体: 黑体字,正常的是 SystemFontOfSize
label1.font = [UIFont boldSystemFontOfSize:20];
//设置文字颜色
label1.textColor = [UIColor orangeColor];
label2.textColor = [UIColor purpleColor];
//设置背景颜色
label1.backgroundColor = [UIColor clearColor];
label2.backgroundColor = [UIColor colorWithRed:0.5f green:30/255.0f blue:0.3f alpha:0.5f];
//设置文字位置
label1.textAlignment = NSTextAlignmentRight; // UITextAlignmentRight 等写法在 iOS 6 后弃用了
label2.textAlignment = NSTextAlignmentCenter;
//设置字体大小适应label宽度
label4.adjustsFontSizeToFitWidth = YES; // 字越多,越窄
//设置label的行数
label5.numberOfLines = 2;
//设置高亮
label6.highlighted = YES;
label6.highlightedTextColor = [UIColor orangeColor];
//设置阴影
label7.shadowColor = [UIColor redColor];
label7.shadowOffset = CGSizeMake(1.0,1.0);
//设置是否能与用户进行交互
label7.userInteractionEnabled = YES;
//设置label中的文字是否可变,默认值是YES
label3.enabled = NO;
//设置文字过长时的显示格式
// iOS 6 后弃用 UILineBreakModeMiddleTruncation
{
label3.lineBreakMode = UILineBreakModeMiddleTruncation; //截去中间
// typedef enum {
// UILineBreakModeWordWrap = 0, //以空格为边界,保留单词。
// UILineBreakModeCharacterWrap,
// UILineBreakModeClip, //截去多余部分
// UILineBreakModeHeadTruncation, //截去头部
// UILineBreakModeTailTruncation, //截去尾部
// UILineBreakModeMiddleTruncation, //截去中间
// } UILineBreakMode;
}
label3.lineBreakMode = NSLineBreakByWordWrapping;
// typedef NS_ENUM(NSInteger, NSLineBreakMode) {
// NSLineBreakByWordWrapping = 0, // //以空格为边界,保留单词。
// NSLineBreakByCharWrapping, // 截取到范围内(字符串)
// NSLineBreakByClipping, //简单剪裁,到边界为止
// NSLineBreakByTruncatingHead, // 从前面开始裁剪字符串: "...wxyz"
// NSLineBreakByTruncatingTail, // 从后面开始裁剪字符串: "abcd..."
// NSLineBreakByTruncatingMiddle // 从中间裁剪字符串: "ab...yz"
// }
// 我们使用的xcode是5.0版本,默认使用的是sdk7.0。使用sdk7.0会导致两者效果完全相同。使用sdk6.1运行的时候可以有效区分开
// 如果adjustsFontSizeToFitWidth属性设置为YES,这个属性就来控制文本基线的行为
label4.baselineAdjustment = UIBaselineAdjustmentAlignCenters;
// typedef enum {
// UIBaselineAdjustmentAlignBaselines,
// UIBaselineAdjustmentAlignCenters,
// UIBaselineAdjustmentNone,
// } UIBaselineAdjustment;
// ***** 根据属性给固定位置的字体更换颜色或字体大小 *****
NSString *originStr = @"Hello,World!";
//创建 NSMutableAttributedString
NSMutableAttributedString *attributedStr01 = [[NSMutableAttributedString alloc] initWithString: originStr];
//添加属性
//给所有字符设置字体为Zapfino,字体高度为15像素
[attributedStr01 addAttribute: NSFontAttributeName value: [UIFont fontWithName: @"Zapfino" size: 15] range: NSMakeRange(0, originStr.length)];
//分段控制,最开始4个字符颜色设置成蓝色
[attributedStr01 addAttribute: NSForegroundColorAttributeName value: [UIColor blueColor] range: NSMakeRange(0, 5)];
//分段控制,第5个字符开始的3个字符,即第5、6、7字符设置为红色
[attributedStr01 addAttribute: NSForegroundColorAttributeName value: [UIColor redColor] range: NSMakeRange(5, 3)];
//赋值给显示控件label01的 attributedText
UILabel *label01 = [[UILabel alloc] initWithFrame:CGRectMake(50.0, 520.0, 200.0, 50.0)];
label01.attributedText = attributedStr01;
// ***** 给 固定 文字替换成 指定 符号 (多用于禁用字) *****
NSString *search = @"王木木";
NSString *replace = @"***";
NSMutableString *mstr = [[NSMutableString alloc]initWithString:@"dafkasdhf王木木kasddsf"];
NSRange range = [mstr rangeOfString:search];
[mstr replaceCharactersInRange:range withString:replace];
UILabel *labelStr = [[UILabel alloc] initWithFrame:CGRectMake(50.0, 580.0, 200.0, 50.0)];
labelStr.text = master;
// NSUnderlineStyleNone 不设置删除线
// NSUnderlineStyleSingle 设置删除线为细单实线
// NSUnderlineStyleThick 设置删除线为粗单实线
// NSUnderlineStyleDouble 设置删除线为细双实线
// 例:
UILabel *labeltext1 = [[UILabel alloc] initWithFrame:CGRectMake(240.0, 380.0, 200.0, 50.0)];
UILabel *labeltext2 = [[UILabel alloc] initWithFrame:CGRectMake(240.0, 440.0, 200.0, 50.0)];
UILabel *labeltext3 = [[UILabel alloc] initWithFrame:CGRectMake(240.0, 500.0, 200.0, 50.0)];
NSDictionary *attrDict1 = @{ NSStrikethroughStyleAttributeName: @(NSUnderlineStyleSingle),
NSFontAttributeName: [UIFont systemFontOfSize:18] };
labeltext1.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict1];
NSDictionary *attrDict2 = @{ NSStrikethroughStyleAttributeName: @(NSUnderlineStyleThick),
NSFontAttributeName: [UIFont systemFontOfSize:18] };
labeltext2.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict2];
NSDictionary *attrDict3 = @{ NSStrikethroughStyleAttributeName: @(NSUnderlineStyleDouble),
NSFontAttributeName: [UIFont systemFontOfSize:18] };
labeltext3.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict3];
//NSUnderlineColorAttributeName 设置下划线颜色,取值为 UIColor 对象,默认值为黑色
UILabel *labeltext4 = [[UILabel alloc] initWithFrame:CGRectMake(200.0, 380.0, 200.0, 50.0)];
UILabel *labeltext5 = [[UILabel alloc] initWithFrame:CGRectMake(200.0, 440.0, 200.0, 50.0)];
UILabel *labeltext6 = [[UILabel alloc] initWithFrame:CGRectMake(200.0, 500.0, 200.0, 50.0)];
NSDictionary *attrDict4 = @{ NSUnderlineColorAttributeName: [UIColor blueColor],
NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle),
NSFontAttributeName: [UIFont systemFontOfSize:22] };
labeltext4.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict4];
NSDictionary *attrDict5 = @{ NSUnderlineColorAttributeName: [UIColor orangeColor],
NSUnderlineStyleAttributeName: @(NSUnderlineStyleThick),
NSFontAttributeName: [UIFont systemFontOfSize:22] };
labeltext5.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict5];
NSDictionary *attrDict6 = @{ NSUnderlineColorAttributeName: [UIColor greenColor],
NSUnderlineStyleAttributeName: @(NSUnderlineStyleDouble),
NSFontAttributeName: [UIFont systemFontOfSize:22] };
labeltext6.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict6];
// NSStrokeWidthAttributeName 设置笔画宽度,取值为 NSNumber 对象(整数)
// 负值填充效果,正值中空效果
UILabel *labeltext7 = [[UILabel alloc] initWithFrame:CGRectMake(200.0, 380.0, 200.0, 50.0)];
UILabel *labeltext8 = [[UILabel alloc] initWithFrame:CGRectMake(200.0, 440.0, 200.0, 50.0)];
UILabel *labeltext9 = [[UILabel alloc] initWithFrame:CGRectMake(200.0, 500.0, 200.0, 50.0)];
NSDictionary *attrDict7 = @{ NSStrokeWidthAttributeName: @(-3),
NSFontAttributeName: [UIFont systemFontOfSize:30] };
labeltext7.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict7];
NSDictionary *attrDict8 = @{ NSStrokeWidthAttributeName: @(0),
NSFontAttributeName: [UIFont systemFontOfSize:30] };
labeltext8.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict8];
NSDictionary *attrDict9 = @{ NSStrokeWidthAttributeName: @(3),
NSFontAttributeName: [UIFont systemFontOfSize:30] };
labeltext9.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attrDict9];
//NSShadowAttributeName 设置阴影属性,取值为 NSShadow 对象
UILabel *labelH01 = [[UILabel alloc] initWithFrame:CGRectMake(200.0, 500.0, 200.0, 50.0)];
NSShadow *shadow1 = [[NSShadow alloc] init]; //NSShadow 对象比较简单,只有3个属性:阴影颜色,模糊半径和偏移
shadow1.shadowOffset = CGSizeMake(16, 5); //阴影偏移(X方向偏移和Y方向偏移)
shadow1.shadowBlurRadius = 3; //模糊半径
shadow1.shadowColor = [UIColor orangeColor]; //阴影颜色
NSDictionary *attr = @{ NSShadowAttributeName: shadow1,
NSFontAttributeName: [UIFont systemFontOfSize:20] };
labelH01.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attr];
//NSExpansionAttributeName 设置文本横向拉伸属性,取值为 NSNumber (float),正值横向拉伸文本,负值横向压缩文本
UILabel *labelH02 = [[UILabel alloc] initWithFrame:CGRectMake(170.0, 380.0, 200.0, 50.0)];
UILabel *labelH03 = [[UILabel alloc] initWithFrame:CGRectMake(170.0, 440.0, 200.0, 50.0)];
UILabel *labelH04 = [[UILabel alloc] initWithFrame:CGRectMake(170.0, 500.0, 200.0, 50.0)];
NSDictionary *attr1 = @{ NSExpansionAttributeName: @(-1),
NSFontAttributeName: [UIFont systemFontOfSize:20] };
labelH02.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attr1];
NSDictionary *attr2 = @{ NSExpansionAttributeName: @(0),
NSFontAttributeName: [UIFont systemFontOfSize:20] };
labelH03.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attr2];
NSDictionary *attr3 = @{ NSExpansionAttributeName: @(0.6),
NSFontAttributeName: [UIFont systemFontOfSize:20] };
labelH04.attributedText = [[NSAttributedString alloc] initWithString: originStr attributes: attr3];
[self.view addSubview:label1];
[self.view addSubview:label2];
[self.view addSubview:label3];
[self.view addSubview:label4];
[self.view addSubview:label5];
[self.view addSubview:label6];
[self.view addSubview:label7];
[self.view addSubview:label01];
[self.view addSubview:labelStr];
// [self.view addSubview:labeltext1];
// [self.view addSubview:labeltext2];
// [self.view addSubview:labeltext3];
// [self.view addSubview:labeltext4];
// [self.view addSubview:labeltext5];
// [self.view addSubview:labeltext6];
// [self.view addSubview:labeltext7];
// [self.view addSubview:labeltext8];
// [self.view addSubview:labeltext9];
// [self.view addSubview:labelH01];
// [self.view addSubview:labelH02];
// [self.view addSubview:labelH03];
// [self.view addSubview:labelH04];
}
// ****** AttributedString 可以设置的那些属性 ******
// NSFontAttributeName 设置字体属性,默认值:字体:Helvetica(Neue) 字号:12
// NSForegroundColorAttributeNam 设置字体颜色,取值为 UIColor对象,默认值为黑色
// NSBackgroundColorAttributeName 设置字体所在区域背景颜色,取值为 UIColor对象,默认值为nil, 透明色
// NSLigatureAttributeName 设置连体属性,取值为NSNumber 对象(整数),0 表示没有连体字符,1 表示使用默认的连体字符
// NSKernAttributeName 设定字符间距,取值为 NSNumber 对象(整数),正值间距加宽,负值间距变窄
// NSStrikethroughStyleAttributeName 设置删除线,取值为 NSNumber 对象(整数)
// NSStrikethroughColorAttributeName 设置删除线颜色,取值为 UIColor 对象,默认值为黑色
// NSUnderlineStyleAttributeName 设置下划线,取值为 NSNumber 对象(整数),枚举常量 NSUnderlineStyle中的值,与删除线类似
// NSUnderlineColorAttributeName 设置下划线颜色,取值为 UIColor 对象,默认值为黑色
// NSStrokeWidthAttributeName 设置笔画宽度,取值为 NSNumber 对象(整数),负值填充效果,正值中空效果
// NSStrokeColorAttributeName 填充部分颜色,不是字体颜色,取值为 UIColor 对象
// NSShadowAttributeName 设置阴影属性,取值为 NSShadow 对象
// NSTextEffectAttributeName 设置文本特殊效果,取值为 NSString 对象,目前只有图版印刷效果可用:
// NSBaselineOffsetAttributeName 设置基线偏移值,取值为 NSNumber (float),正值上偏,负值下偏
// NSObliquenessAttributeName 设置字形倾斜度,取值为 NSNumber (float),正值右倾,负值左倾
// NSExpansionAttributeName 设置文本横向拉伸属性,取值为 NSNumber (float),正值横向拉伸文本,负值横向压缩文本
// NSWritingDirectionAttributeName 设置文字书写方向,从左向右书写或者从右向左书写
// NSVerticalGlyphFormAttributeName 设置文字排版方向,取值为 NSNumber 对象(整数),0 表示横排文本,1 表示竖排文本
// NSLinkAttributeName 设置链接属性,点击后调用浏览器打开指定URL地址
// NSAttachmentAttributeName 设置文本附件,取值为NSTextAttachment对象,常用于文字图片混排
// NSParagraphStyleAttributeName 设置文本段落排版格式,取值为 NSParagraphStyle 对象