UILabel是iOS开发中最常用的一种标签了,在开发过程中,会用到各种个样的标签属性,一段文字中变颜色或者字体的样式等(这些都是富文本中的内容,用于美化文字),下面就让我来给大家做一个详细的UILabel介绍吧!

一、UILabel的创建与初始化

1、UILabel的创建

用这种方式创建一个UILabel

@property (nonatomic, strong) UILabel *label;

2、UILabel的初始化方式

(1)设置位置和宽高的初始化方式

self.label = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, self.view.bounds.size.width-100, self.view.bounds.size.height- 200)];///第一种初始化方式

(2)普通的初始化方式

self.label = [UILabel alloc] init];///第二种初始化方式

二、UILabel的属性

1、text

text ---- 标签的显示内容,默认为空

self.label.text = @"我去。。。。这么短的么????还是不够长,文字到底要多长啊!!!!!!!!!!!!!!!~~~~~~~~~~";

2、textColor

textColor ---- 标签的文字颜色,默认为文本黑色

self.label.textColor = [UIColor whiteColor];

3、font

font ---- 标签的文字大小设置,默认使用系统的17

self.label.font = [UIFont systemFontOfSize:25];

4、backgroundColor

backgroundColor ---- 标签的背景颜色

self.label.backgroundColor = [UIColor blackColor]

5、numberOfLines

numberOfLines ---- 标签的最多显示行数,如果为0,则表示会自动换行

self.label.numberOfLines = 0;

6、textAlignment

textAlignment ---- 标签中内容的对齐方式 常用的有三种:左对齐,居中,右对齐。默认为左对齐

self.label.textAlignment = NSTextAlignmentCenter;

7、enabled

enabled ---- 标签是否可用,默认是YES,只是决定了Label的绘制方式,将它设置为NO将会使文本变暗,表示它没有激活,这时向它设置颜色值是无效的。

self.label.enabled = YES;

8、highlighted

highlighted ---- 标签是否高亮显示 - 默认为NO

self.label.highlighted = NO;

9、highlightedTextColor

highlightedTextColor ---- 标签高亮显示时的文本颜色

self.label.highlightedTextColor = [UIColor orangeColor];

10、lineBreakMode

lineBreakMode ---- 设置标签文字过长时的显示格式,默认是最后截断尾巴,用…代替 有多种样式(这里就先不详细介绍了!可以自己一个一个去尝试看看是怎么样的)

self.label.lineBreakMode = NSLineBreakByTruncatingTail;

11、shadowColor

shadowColor ---- 标签阴影,默认没有

self.label.shadowColor = [UIColor orangeColor];

12、shadowOffset

shadowOffset ---- 标签阴影的偏移

self.label.shadowOffset = CGSizeMake(0, 1.5);

13、baselineAdjustment

baselineAdjustment ---- 如果adjustsFontSizeToFitWidth属性设置为YES,这个属性就来控制文本基线的行为

self.label.baselineAdjustment = UIBaselineAdjustmentNone;

14、adjustsFontSizeToFitWidth

adjustsFontSizeToFitWidth ---- 默认NO,如果文本的长度超出了label的宽度,则缩小文本的字体大小来让文本完全显示

self.label.adjustsFontSizeToFitWidth = NO;

15、userInteractionEnabled

userInteractionEnabled ---- 是否响应用户事件

self.label.userInteractionEnabled = YES;

16、minimumScaleFactor

minimumScaleFactor ---- 设置字体可缩小的最小比例 (值在 0~1.0之间 默认为0.0)常与adjustsFontSizeToFitWidth一起使用来控制缩小的最小比例

self.label.minimumScaleFactor = 0.5;

17、allowsDefaultTighteningForTruncation

allowsDefaultTighteningForTruncation ---- label截断是否紧缩文字,默认为NO

self.label.allowsDefaultTighteningForTruncation = NO;

18、preferredMaxLayoutWidth

preferredMaxLayoutWidth ---- 支持基于约束的布局(自动布局),如果非零,则在确定多行标签的-intrinsicContentSize时使用,设置preferredLayoutWidth后需要重新计算并布局界面

self.label.preferredMaxLayoutWidth = 80;

19、enablesMarqueeWhenAncestorFocused

enablesMarqueeWhenAncestorFocused ---- 如果此值为true,则标签将忽略lineBreakMode、adjustsFontSizeToFitWidth和allowsDefaultTightengForTruncation。当视图层次结构中的任何祖先有焦点时,标签滚动其文本。默认为false

self.label.enablesMarqueeWhenAncestorFocused = YES;

20、minimumFontSize

minimumFontSize ---- 字体自动缩小的最小字体大小 (已经弃用)被minimumScaleFactor代替

self.label.minimumFontSize = 14;

21、adjustsLetterSpacingToFitWidth

adjustsLetterSpacingToFitWidth ---- 改变字母之间的间距来适应Label大小(已经弃用)

self.label.adjustsLetterSpacingToFitWidth = YES;

22、attributedText (划重点!)

attributedText ---- 添加富文本(富文本内容是label中的重点了,开发时很多时候都会用到)

self.label.attributedText = string;//string为NSMutableAttributedString类型

三、富文本的介绍和使用

富文本就是纯文本内容经过更高级的渲染,更改而成的文本(例如 一段文字中的某个字/某段字的颜色大小不一样,又或者有一些特殊字体例如 空心体等)一起来玩玩吧,富文本比较有意思

1、初始化

后面使用的内容应该为你想要那段文字产生变化的内容,就拿上面的label的文本举例

NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:self.label.text];

2、如何添加需要改变的类型

(1)addAttribute: value: range:

  • 参数一:想改变为什么样的类型,例如下划线,字体大小,字体颜色等
  • 参数二:值,例如颜色的话直接用[UIColor blackColor];或者别的颜色就可以
  • 参数三:想要修改的文字范围NSMakeRange(loc,length), loc是开始的位置,length是需要修改的文字长度

(2)addAttributes: range:

  • 参数一:用字典的方式存储修改方式 例如 @{想改的类型:值,想修改的类型:值}
  • 参数二 想要修改的文字范围NSMakeRange(loc,length) loc是开始的位置,length是需要修改的文字长度

3、来介绍一些简单又有趣的富文本吧

(1)设置部分字体大小(前两个字)大小为20

[string addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:20.0f]  range:NSMakeRange(0, 2)];

(2)设置部分字体颜色 (第三个字开始的后三个字 ) 设为 红色

[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(2, 3)];

(3)设置部分位置的背景颜色(第五个位置开始的后两个字)设为背景颜色 黄色

[string addAttribute:NSBackgroundColorAttributeName value:[UIColor yellowColor] range:NSMakeRange(5, 2)];

(4)给部分文字添加下划线 (第九个文字开始的后三个字)设置下划线

[string addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle]  range:NSMakeRange(9, 3)];

(5)添加中间删除线 (第11个开始的后一个字)设置中间删除线

[string addAttribute:NSStrikethroughStyleAttributeName value:@(NSUnderlinePatternSolid | NSUnderlineStyleSingle) range:NSMakeRange(11, 4)];

(6)添加字体的类型 (第十五个开始的后七个字)设置字体的类型(黑体,宋体这样的)

[string addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Verdana-BoldItalic" size:13]  range:NSMakeRange(15, 7)];

(7)空心字,文字边框描述文字内部为空 (从第二十五开始的后三个字)设为空心字 空心字宽2 边的颜色为灰色

[string addAttribute:NSStrokeWidthAttributeName
value:@2 range:NSMakeRange(25, 3)];
[string addAttribute:NSStrokeColorAttributeName
value:[UIColor grayColor]
range:NSMakeRange(25, 3)];

(8)设置阴影 (第三十个开始的后三个)

NSShadow *shadow = [[NSShadow alloc]init];
shadow.shadowBlurRadius = 5;//模糊度
shadow.shadowColor = [UIColor yellowColor];
shadow.shadowOffset = CGSizeMake(1, 3);
NSDictionary *attrsDic2 = @{NSShadowAttributeName: shadow,
NSVerticalGlyphFormAttributeName: @(0),
NSForegroundColorAttributeName: [UIColor magentaColor]};
[string addAttributes:attrsDic2 range:NSMakeRange(30, 3)];

(9)设置文本扁平化(第三十三位置开始的后四个)

NSShadow *shadow01 = [[NSShadow alloc]init];
shadow01.shadowBlurRadius = 5;//模糊度
shadow01.shadowColor = [UIColor magentaColor];
shadow01.shadowOffset = CGSizeMake(1, 3);
[string addAttributes:@{NSShadowAttributeName: shadow01,NSVerticalGlyphFormAttributeName: @(0),
NSExpansionAttributeName: @1} range:NSMakeRange(33, 4)];

(10)设置字体的倾斜度(第三十七位置开始的后三个)

NSShadow *shadow02 = [[NSShadow alloc]init];    shadow02.shadowBlurRadius = 5;//模糊度
shadow02.shadowColor = [UIColor blueColor];
shadow02.shadowOffset = CGSizeMake(1, 3);
[string addAttributes:@{NSShadowAttributeName: shadow02,
NSVerticalGlyphFormAttributeName: @(0),
NSObliquenessAttributeName: @1} range:NSMakeRange(37, 3)];

(11)设置段落样式

//段落格式
NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init];
paragraph.lineSpacing = 2;//行间距
paragraph.headIndent = 10;//头部缩进,相当于左padding
paragraph.tailIndent = -10;//相当于右padding
paragraph.lineHeightMultiple = 1.5;//行间距是多少倍
paragraph.firstLineHeadIndent = 5;//指定段落开始的缩进,首行头缩进
paragraph.headIndent = 10;//调整全部文字的缩进
paragraph.paragraphSpacingBefore = 20;//段落之前的间距
paragraph.paragraphSpacing = 20;//段落后面的间距
paragraph.alignment = NSTextAlignmentLeft;//对齐方式
/// 添加段落设置
[string addAttribute:NSParagraphStyleAttributeName
value:paragraph range:NSMakeRange(0, string.length)];

(12)label添加超链接(全文超链接)会使整个出现一个下划线且字体变蓝,为了展示上边的富文本,这里就将超链接注释了

NSURL *url = [NSURL URLWithString:@"www.baidu.com"];
[string addAttribute:NSLinkAttributeName
value:url range:NSMakeRange(0, string.length)];

(13)运行结果(嗯~~虽然丑了点,但是效果都有的,可以根据自己的要求去规划)

四、UILabel小结

UILabel中虽然是我们用的最多,也是觉得的最简单的一个标签,但是当你仔细的去整理的时候,你会发现,label中有许多你不知道的东西。就像富文本一样,以前完全没有想过空心字是这样字设置出来的。UILabel在文本中真的非常大,特别是富文本,这也让你增加了很多的学习乐趣,好好玩玩富文本,是个好东西哦~

UILabel的介绍到这里也就结束喽!属性基本上都已经写全了,富文本这一块,有太多好玩的东西了,还没有写全,可以自己慢慢探索~

谢谢大家观看~如有错误,请帮忙指出!谢谢!!

iOS开发 UILabel 详细介绍(属性+富文本)相关推荐

  1. iOS开发UI篇—transframe属性(形变)

    iOS开发UI篇-transframe属性(形变) 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两 ...

  2. IOS开发—— 获取AppDelegate的属性或字段

    IOS开发-- 获取AppDelegate的属性或字段 其它控制器中: AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplicat ...

  3. iOS开发 UILabel实现自适应高宽

    UILabel是iOS开发常用的控件.UILabel的属性需要了解,UILabel的特殊显示效果也需要我们掌握.UILabel自适应高宽度是很多初学者遇到的技术性难题.比如段文字,要让他完全地分行显示 ...

  4. 【超详细】Tinymce富文本使用教程

    Tinymce基础使用手册 1. 开始 官网文档:www.tiny.cloud/docs/ 社区版及开发版官方最新打包地址:www.tiny.cloud/get-tiny/self-hosted/ 汉 ...

  5. UILabel添加图片之富文本的简单应用

    若想对UILabel添加图片,那么就需要使用NSMutableAttributedString来定义 先定义一个普通的label UILabel *lab = [[UILabel alloc]init ...

  6. iOS开发UIlabel篇:iOS 10 3 Label设置的中划线突然失效了

    iOS10.3更新后,商城APP这样的UI:原价 "¥500 " 类似Label设置的中划线突然失效了. 这可能是苹果系统的一个bug. 根本原因:Label上的文字只要包含有&q ...

  7. UILabel 使用 标签,圆角,富文本

    2019独角兽企业重金招聘Python工程师标准>>> 继承关系:UIView : UIResponder : NSObject ///UILabel 显示的文本只读,无法编辑,可以 ...

  8. iOS开发基础篇——介绍C++内置函数

    学习iOS开发,那么就一定要掌握C的部分,今天的内容是C++内置函数的部分,一起来学习一下吧! 调用函数时需要一定的时间和空间的开销,过程如下: 这只是一个参考! C++提供一种提高效率的方法,即在编 ...

  9. 开发WinRT自定义组件之富文本框

    富文本框是常用的组件之一,多用于文章排版.用户评论等. WinRT组件中内置了两个:RichEditBox.RichTextBlock.RichEditBox可以编辑,RichTextBlock只用来 ...

最新文章

  1. 2022-2028年中国盲盒行业市场研究及前瞻分析报告
  2. 详解通用物体检测算法:基于锚框与无需锚框
  3. C#游戏开发快速入门 2.1 构建游戏场景
  4. C++ with STL(五)queuestacklist
  5. phonegap for mac
  6. spring 读取配置文件的优先级
  7. 10大主流压力测试工具推荐(转载)
  8. findler mac 隐藏文件_Fiddler配合Proxifier抓包PC客户端HTTPS明文数据
  9. bs cs架构区别_软件架构设计分层模型和构图思考
  10. 学生用计算机记录表,计算机教室学生上机记录表第14周
  11. MYSQL查询近一年 近一月 近一周 今天数据 没有数据返回0 按时间有序返回数据
  12. ExtJS视频教程1(上)
  13. 软件著作权申请流程(2021版)
  14. android 蓝牙打印乱码,蓝牙打印机打印中文乱码
  15. 微信公众号 模板消息 定时推送 java
  16. 推荐系统-基于用户的推荐在社交网络中的应用
  17. wifi共享代码实践java_笔记本实现共享wifi上网
  18. Windows RDP的RCE漏洞分析和复现(CVE-2019-0708)
  19. 「 LaTex 」使用多级标题
  20. Cutting(思维)

热门文章

  1. HTC VIVE开发教程(一)
  2. android wear 表盘设计,更加个性化 Android Wear推出17款新表盘
  3. 一点学习程序的小tip
  4. What is Spring Boot? Autoconfigurations In-Depth
  5. c语言 转移字符',转义字符
  6. 2021年中国克林霉素磷酸酯注射液市场趋势报告、技术动态创新及2027年市场预测
  7. 蓝库云|建筑工程业未来的发展机遇,数字化建设成关键点
  8. Aurora HDR 2019 for Mac 1.0.1高级 HDR 软件。
  9. wpf ComboBox使用Dictionary来绑定数据
  10. 热度算法和个性化推荐