菜鸟成长记-UILabel使用、横线划掉价格
2016-03-26 21:55
429 查看
UILabel的使用可以说是无处不在,也可以说是简单易懂、他可以实现很到有趣效果,这里给大家浅尝一下它的一些实际中比较有用的技术点
一般电商中会有一个价格信息显示,会用横线划掉,其实这个效果实现有很多种,我这里讲解两种
第一种:
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100,40)];
label.text = @"你好中国";
NSDictionary *dict = @{NSStrikethroughStyleAttributeName:[NSNumber numberWithInteger:NSUnderlineStyleThick],
NSUnderlineStyleAttributeName:[NSNumber numberWithInteger:NSUnderlineStyleSingle], NSStrikethroughColorAttributeName:[UIColor redColor], NSFontAttributeName:[UIFont systemFontOfSize:24] };
NSMutableAttributedString *attribtStr = [[NSMutableAttributedString alloc]initWithString:label.text];
[attribtStr addAttributes:dict range:NSMakeRange(0, 2)];
设置table的属性值
label.attributedText = attribtStr;
[self.view addSubview:label];
第二种:
创建一个类直接继承UILabel 重写DrawRect即可
[[UIColor
grayColor] CGColor];
UIRectFill(CGRectMake(0, rect.size.height * 0.5, rect.size.width,
1));
UILabel的attributedText属性解析介绍
1> NSFontAttributeName(字体)
该属性所对应的值是一个 UIFont 对象。该属性用于改变一段文本的字体。如果不指定该属性,则默认为12-point Helvetica(Neue)。
2> NSParagraphStyleAttributeName(段落)
该属性所对应的值是一个 NSParagraphStyle 对象。该属性在一段文本上应用多个属性。如果不指定该属性,则默认为 NSParagraphStyle 的defaultParagraphStyle 方法返回的默认段落属性。
3> NSForegroundColorAttributeName(字体颜色)
该属性所对应的值是一个 UIColor 对象。该属性用于指定一段文本的字体颜色。如果不指定该属性,则默认为黑色
4> NSBackgroundColorAttributeName(字体背景色)
该属性所对应的值是一个 UIColor 对象。该属性用于指定一段文本的背景颜色。如果不指定该属性,则默认无背景色。
5> NSLigatureAttributeName(连字符)
该属性所对应的值是一个 NSNumber 对象(整数)。连体字符是指某些连在一起的字符,它们采用单个的图元符号。0 表示没有连体字符。1 表示使用默认的连体字符。2表示使用所有连体符号。默认值为 1(注意,iOS 不支持值为 2)。
6> NSKernAttributeName(字间距)
该属性所对应的值是一个 NSNumber 对象(整数)。字母紧排指定了用于调整字距的像素点数。字母紧排的效果依赖于字体。值为 0 表示不使用字母紧排。默认值为0。
7> NSStrikethroughStyleAttributeName(删除线)
该属性所对应的值是一个 NSNumber 对象(整数)。该值指定是否在文字上加上删除线,该值参考“Underline Style Attributes”。默认值是NSUnderlineStyleNone。
8> NSUnderlineStyleAttributeName(下划线)
该属性所对应的值是一个 NSNumber 对象(整数)。该值指定是否在文字上加上下划线,该值参考“Underline Style Attributes”。默认值是NSUnderlineStyleNone。
9> NSStrokeColorAttributeName(边线颜色)
该属性所对应的值是一个 UIColor 对象。如果该属性不指定(默认),则等同于 NSForegroundColorAttributeName。否则,指定为删除线或下划线颜色。更多细节见“Drawing attributedstrings that are both filled and stroked”。
10> NSStrokeWidthAttributeName(边线宽度)
该属性所对应的值是一个 NSNumber 对象(小数)。该值改变描边宽度(相对于字体size 的百分比)。默认为 0,即不改变。正数只改变描边宽度。负数同时改变文字的描边和填充宽度。例如,对于常见的空心字,这个值通常为3.0。
11> NSShadowAttributeName(阴影)
该属性所对应的值是一个 NSShadow 对象。默认为 nil。
12> NSVerticalGlyphFormAttributeName(横竖排版)
该属性所对应的值是一个 NSNumber 对象(整数)。0 表示横排文本。1 表示竖排文本。在 iOS 中,总是使用横排文本,0 以外的值都未定义。
一般电商中会有一个价格信息显示,会用横线划掉,其实这个效果实现有很多种,我这里讲解两种
第一种:
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100,40)];
label.text = @"你好中国";
NSDictionary *dict = @{NSStrikethroughStyleAttributeName:[NSNumber numberWithInteger:NSUnderlineStyleThick],
NSUnderlineStyleAttributeName:[NSNumber numberWithInteger:NSUnderlineStyleSingle], NSStrikethroughColorAttributeName:[UIColor redColor], NSFontAttributeName:[UIFont systemFontOfSize:24] };
NSMutableAttributedString *attribtStr = [[NSMutableAttributedString alloc]initWithString:label.text];
[attribtStr addAttributes:dict range:NSMakeRange(0, 2)];
设置table的属性值
label.attributedText = attribtStr;
[self.view addSubview:label];
第二种:
创建一个类直接继承UILabel 重写DrawRect即可
[[UIColor
grayColor] CGColor];
UIRectFill(CGRectMake(0, rect.size.height * 0.5, rect.size.width,
1));
UILabel文字大小自适应------调用SizeToFit方法
UILabel的attributedText属性解析介绍1> NSFontAttributeName(字体)
该属性所对应的值是一个 UIFont 对象。该属性用于改变一段文本的字体。如果不指定该属性,则默认为12-point Helvetica(Neue)。
2> NSParagraphStyleAttributeName(段落)
该属性所对应的值是一个 NSParagraphStyle 对象。该属性在一段文本上应用多个属性。如果不指定该属性,则默认为 NSParagraphStyle 的defaultParagraphStyle 方法返回的默认段落属性。
3> NSForegroundColorAttributeName(字体颜色)
该属性所对应的值是一个 UIColor 对象。该属性用于指定一段文本的字体颜色。如果不指定该属性,则默认为黑色
4> NSBackgroundColorAttributeName(字体背景色)
该属性所对应的值是一个 UIColor 对象。该属性用于指定一段文本的背景颜色。如果不指定该属性,则默认无背景色。
5> NSLigatureAttributeName(连字符)
该属性所对应的值是一个 NSNumber 对象(整数)。连体字符是指某些连在一起的字符,它们采用单个的图元符号。0 表示没有连体字符。1 表示使用默认的连体字符。2表示使用所有连体符号。默认值为 1(注意,iOS 不支持值为 2)。
6> NSKernAttributeName(字间距)
该属性所对应的值是一个 NSNumber 对象(整数)。字母紧排指定了用于调整字距的像素点数。字母紧排的效果依赖于字体。值为 0 表示不使用字母紧排。默认值为0。
7> NSStrikethroughStyleAttributeName(删除线)
该属性所对应的值是一个 NSNumber 对象(整数)。该值指定是否在文字上加上删除线,该值参考“Underline Style Attributes”。默认值是NSUnderlineStyleNone。
8> NSUnderlineStyleAttributeName(下划线)
该属性所对应的值是一个 NSNumber 对象(整数)。该值指定是否在文字上加上下划线,该值参考“Underline Style Attributes”。默认值是NSUnderlineStyleNone。
9> NSStrokeColorAttributeName(边线颜色)
该属性所对应的值是一个 UIColor 对象。如果该属性不指定(默认),则等同于 NSForegroundColorAttributeName。否则,指定为删除线或下划线颜色。更多细节见“Drawing attributedstrings that are both filled and stroked”。
10> NSStrokeWidthAttributeName(边线宽度)
该属性所对应的值是一个 NSNumber 对象(小数)。该值改变描边宽度(相对于字体size 的百分比)。默认为 0,即不改变。正数只改变描边宽度。负数同时改变文字的描边和填充宽度。例如,对于常见的空心字,这个值通常为3.0。
11> NSShadowAttributeName(阴影)
该属性所对应的值是一个 NSShadow 对象。默认为 nil。
12> NSVerticalGlyphFormAttributeName(横竖排版)
该属性所对应的值是一个 NSNumber 对象(整数)。0 表示横排文本。1 表示竖排文本。在 iOS 中,总是使用横排文本,0 以外的值都未定义。
相关文章推荐
- leetcode_060 Permutation Sequence
- java中PriorityQueue优先级队列使用方法
- POJ 3061 Subsequence(尺取法)
- easyui前台改变datagrid某单元格的值
- Range minimum query
- StringBuilder、StringBuffer和String三者的联系和区别
- ElasticSearch中根据查询结果删除数据(delete by query)
- 我的Android进阶之旅------>android如何将List<NameValuePair>请求参数列表转换为json格式
- CodeForces-626A-Robot Sequence
- UVA 1252(p287)----Twenty Questions
- POJ2524Ubiquitous Religions
- 如何降低Vue.js项目中Webpack打包文件的大小?
- 334. Increasing Triplet Subsequence
- 通过request获得全路径
- 自定义控件基础 requestLayout()和invalidate()区别
- 五、初学servlet之请求Request
- Leetcode Sudoku Solver My Submissions Question
- 开源的OLAP框架druid
- 有多个手势支持时候需要实现UIGuestrueRecoginer方法
- UIBezierPath转换为传统上下文的样式