IOS控件Label(UILabel)

摘要:
本文首发于,博客园,请搜索:博客园-寻自己,查看原版文章本文首发地址:IOS控件Label-www.cnblogs.com/xunziji/archive/2012/09/20/2695474.html通过这两段话,我们能明白Label主要有以下特性:1.是用来显示文本内容的,且是只读的2.可以单行显示,也可以多行显示,但是要通过设置实现3.可以给内容增加一些shadow、draws、highlight等特效4.默认是不支持事件的,但是可以通过自定义使其支持5.在代码中控制换行,需要添加字符'\n'6.在XCode编辑模式下换行,需要按住'Control+Enter'按键本文禁止任何网站转载,严厉谴责那些蛀虫们。

前段时间已经把 Object-C 过了一遍了,现在要开始 IOS 开发的实战学习了。因为之前是做 .Net 开发的,所以,转过来的时间,还是有好多不适应和困惑的,特别是 C# -> Object-C 和 VS -> XCode,其中更有很多思想和操作都是不同的,没办法,只有一步步来了。

今天在调一些IOS中简单的控件,其中使用到了Label(UILabel),其实Label(UILabel) 还是蛮简单的,但是也是最常用的,所以就想先通过 深入了解 Label(UILabel) ,来开始接触 IOS 中的控件,毕竟控件有好多的属性和方法都是相同的~
官方文档:Apple Label(UILabel)
官方文档中,对Label(UILabel) 描述比较重要的部分如下:
The UILabel class implements a read-only text view. You can use this class to draw one or multiple lines of static text, such as those you might use to identify other parts of your user interface. The base UILabel class provides control over the appearance of your text, including whether it uses a shadow or draws with a highlight. If needed, you can customize the appearance of your text further by subclassing.
New label objects are configured to disregard user events by default. If you want to handle events in a custom subclass of UILabel, you must explicitly change the value of the userInteractionEnabled property to YES after initializing the object.
本文禁止任何网站转载,严厉谴责那些蛀虫们。
本文首发于,博客园,请搜索:博客园 - 寻自己,查看原版文章
本文首发地址:IOS控件Label(UILabel) - www.cnblogs.com/xunziji/archive/2012/09/20/2695474.html
通过这两段话,我们能明白Label(UILabel)主要有以下特性:
1. 是用来显示文本内容的,且是 只读 的
2. 可以单行显示,也可以多行显示,但是要通过设置实现
3. 可以给内容增加一些 shadow、draws、highlight 等特效
4. 默认是不支持事件的,但是可以通过自定义使其支持
5. 在代码中控制换行,需要添加字符 '\n'
6. 在 XCode 编辑模式下换行,需要按住 'Control + Enter' 按键
本文禁止任何网站转载,严厉谴责那些蛀虫们。
本文首发于,博客园,请搜索:博客园 - 寻自己,查看原版文章
本文首发地址:IOS控件Label(UILabel) - www.cnblogs.com/xunziji/archive/2012/09/20/2695474.html
下面,来逐条分析下Label(UILabel) 的属性(Property):
1. text :Label(UILabel) 显示的文本,可读写的属性,值类型为 NSString,默认值为 Nil

2. font : text 的 font-family 和 font-size,可读写,值类型为 UIFont,默认值为system font at a size of 17


3. textColor : 文本的颜色,可读写的属性,值类型为 UIColor,默认值为 Black
4. textAlignment:文本的对齐方式,可读写的属性,值类型为 UITextAlignment,默认值为UITextAlignmentLeft
5. lineBreakMode : 文本的换行与截断方式,可读写的属性,值类型为 UILineBreakMode,默认值为UILineBreakModeTailTruncation

6. enabled : 控件是否可用,感觉对于 Label 来说比较鸡肋,为 false 后,只是把颜色变灰而已,如果想要隐藏UILabel(Label),请用hidden 属性
//隐藏Label(UILabel):lblUserName
[lblUserName setHidden:true];
本文禁止任何网站转载,严厉谴责那些蛀虫们。
本文首发于,博客园,请搜索:博客园 - 寻自己,查看原版文章
本文首发地址:IOS控件Label(UILabel) - www.cnblogs.com/xunziji/archive/2012/09/20/2695474.html
7.adjustsFontSizeToFitWidth : 是否根据 Label 宽度来自动调整 text 的大小,默认值为 Yes,bool 类型
8. baselineAdjustment: text的基线位置,不是太长用,没搞懂~
9. minimumFontSize : text的最小大小,可以用这个 Property 来阻止adjustsFontSizeToFitWidth 过于缩放
10. numberOfLines : 设置 text 的最大行,可以防止过高;设为 0 ,即行数不受限制
11. highlighted: 是否高亮(对于label 来说,就是改变text 的颜色),适合在交互的时间使用这个属性,如 button 被按下,然后改变 button text 的 颜色等,也是说,只有再Label 被按下的时间,比如,一个 tabelcell 里面又1 个label,当这个 tabelcell 被按下时,背景色改为蓝色,这时间,把label 的highlighted 变成白色会体验更好
12.highlightedTextColor : 用何种颜色高亮,参考highlighted
13.shadowColor & shadowOffset : 设置文本的阴影颜色和阴影大小
14.userInteractionEnabled : 是否可以和用户进行交互,即是否可以响应时间,默认为 NO
UILabel 控制高度,有两个纬度,一个是numberOfLines ,另外一个是通过 frame 来设置款高来实现;但是经过使用,发现numberOfLines只有 0 和 1 比较有意义,即 自动行数 和 1 行显示,如若是 0,则要配合 设置 frame 来调整高度,即numberOfLines可以极端的说,就是用来控制 UILabel 是否为多行显示,其实用 IsMulitRows 来代替,感觉更好
本文禁止任何网站转载,严厉谴责那些蛀虫们。
本文首发于,博客园,请搜索:博客园 - 寻自己,查看原版文章
本文首发地址:IOS控件Label(UILabel) - www.cnblogs.com/xunziji/archive/2012/09/20/2695474.html
示例代码:
 NSString *txt = @"The UILabel class implements a read-only text view. You can use this class to draw one or multiple lines of static text, such as those you might use to identify other parts of your user interface. \n The base UILabel class provides support for both simple and complex styling of the label text. You can also control over aspects of appearance, such as whether the label uses a shadow or draws with a highlight. \n If needed, you can customize the appearance of your text further by subclassing.The default content mode of the UILabel class is UIViewContentModeRedraw. \n This mode causes the view to redraw its contents every time its bounding rectangle changes. \n You can change this mode by modifying the inherited contentMode property of the class.New label objects are configured to disregard user events by default. \n If you want to handle events in a custom subclass of UILabel, you must explicitly change the value of the userInteractionEnabled property to YES after initializing the object.";
   
    learnLabel.text =txt;
    
    UIFont *font = [UIFont systemFontOfSize:16];
    learnLabel.font =font;
    
    /*Test 1 设置 UIlabel 高度*/learnLabel.numberOfLines =0;
    
    CGSize txtSize =[txt sizeWithFont:font
                       constrainedToSize:CGSizeMake(400, 200)
                           lineBreakMode:UILineBreakModeCharacterWrap];
    
    learnLabel.frame =CGRectMake(learnLabel.frame.origin.x, learnLabel.frame.origin.y, txtSize.width, txtSize.height);
    
    
    /*Test 3 测试 Highlightcolor & highlight
    learnLabel.highlighted = true;
    learnLabel.textColor = [UIColor greenColor];
    learnLabel.highlightedTextColor = [UIColor blueColor];
    */
    
    /*Test 4 测试 shadowColor & shadowOffset*/learnLabel.font =[UIFont systemFontOfSize:34];
    learnLabel.shadowColor =[UIColor greenColor];
    learnLabel.shadowOffset = CGSizeMake(0.0,0.000001);
    learnLabel.backgroundColor =[UIColor grayColor];
    
    /*Test 2 设置自动换行、大小自适应
    learnLabel.lineBreakMode = UILineBreakModeWordWrap;
    learnLabel.numberOfLines = 0;
    CGSize size = [learnLabel sizeThatFits:CGSizeMake(500, 0)];
    CGRect rect = learnLabel.frame;
    rect.size  =size;
    learnLabel.frame = rect;
    */
本文禁止任何网站转载,严厉谴责那些蛀虫们。
本文首发于,博客园,请搜索:博客园 - 寻自己,查看原版文章
本文首发地址:IOS控件Label(UILabel)

免责声明:文章转载自《IOS控件Label(UILabel)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spring整合多数据源实现动态切换C#的6种常用集合类大比拼 (转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

YY博客园UML类图之博客模块

  UML建模YY系列:     YY博客园UML类图之博客模块     YY博客园UML时序图之博客模块     YY博客园UML用例图-活动图-状态图之博客模块   UML几年前就接触过了,那是的学习也可为不求甚解。只知道UML是个建模的,画画图;类图、用例图、时序图和活动图神马的;学了也就学了,一直没怎么用。最近又温习了一遍UML建模方面的知识,总感...

php中mysql数据库操作类 -李盛鹏 -博客园

本白演示的代码属于较为简单的数据库封装类,较适合初学。因为水平有限,见谅。 接着稍微说说整体的思路。整个类的封装,包含一个连接数据库的私有属性$conn和若干操作函数。$conn在对象实例化的时候,由构造函数处理传入的参数后返回一个资源型的连接句柄。而后即可通过调用该实例化的对象的相应方法对数据库进行增删查改的操作。 talk less and show...

关于编译Qt以及驱动的一点总结吧 Rollen Holt 博客园

关于编译Qt以及驱动的一点总结吧 - Rollen Holt - 博客园 关于编译Qt以及驱动的一点总结吧 通过这几次的折腾,对编译Qt算是有一点的心得吧: 首先我们编译QT的时候需要面对的是下载源代码,一般情况下我们建议下载qt-everywhere-opensource-src-4.8.2.zip这种形式的源代码。这样编译起来的问题也就很少了。当然...

UILabel

一.默认状态 单行,不可获取用户点击事件,UIViewContentModeRedraw模式,改变就重绘. 二.相关属性与函数 1.文本属性 text        // label 显示的文字 font        // text 的字体,值不可以是nil,否则异常 textColor      // text 的颜色 textAlignment  /...

sublime text 之snippet功能的使用 -李盛鹏 -博客园

sublime text 小巧而功能强大,有着好看的外观,被誉为世界上最“性感”的IDE。sublime text也是本小白在最近的学习和做项目当中最常使用的IDE。小巧且功能强大,对于开发前端以及小型项目来说绰绰有余。 但对于诸多功能,本白也是通过网上的一些大神笔记以及官网上的一些功能才了解并使用到的。最近习得的功能中,其中一个叫snippet的小功能让...

分享一个博客园皮肤制作脚手架

前言 最近本着新年新气象的想法,想换套新的博客园皮肤。 之前自己做了一套制作皮肤的解决方案,这是当时分享皮肤以及解决方案的博客:分享一款博客园皮肤及其解决方案。 不过在制作新的皮肤过程中,使用这个解决方案时还是遇到了很多问题。 而为了更方便地制作新皮肤,就升级了原先的解决方案,搭建了这套博客园皮肤制作脚手架。 项目地址已从github换到了码云:https:...