UILabel 的常见属性和方法:

//创建UIlabel对象

UILabel* label = [[UILabel alloc] initWithFrame:self.view.bounds];

//设置显示文本

label.text = @"This is a UILabel Demo";

//设置阴影

label.shadowColor = [UIColor redColor];

label.shadowOffset = CGSizeMake(1.0,1.0);

//设置高亮

label.highlighted = YES;

label.highlightedTextColor = [UIColre orangeColor];

//设置文本字体

label.font = [UIFont fontWithName:@"Arial" size:35];

//设置字体:粗体,正常的是 SystemFontOfSize
label1.font = [UIFont boldSystemFontOfSize:20];

//设置文本颜色

label.textColor = [UIColor yellowColor];

//设置文本水平显示位置(中心)

label.textAlignment = UITextAlignmentCenter;

//设置背景颜色

label.backgroundColor = [UIColor blueColor];

//设置单词折行方式

label.lineBreakMode = UILineBreakModeWordWrap;

//设置label是否可以显示多行,0则显示多行

label.numberOfLines = 0;

//设置字体大小适宜label宽度

label.adjustsFontSizeToFitWidth = YES;

//设置label中的文字是否可变,默认是YES

label.enabled = NO;

//根据内容大小,动态设置UILabel的高度 (ios 7  过期了,被其他方法替换掉了)

CGSize size = [label.text sizeWithFont:label.font constrainedToSize:self.view.bounds.size lineBreakMode:label.lineBreakMode];

CGRect rect = label.frame;

rect.size.height = size.height;

label.frame = rect;

//设置文字过长时的显示格式

6.lineBreakMode:设置标签文字过长时的显示方式

label.lineBreakMode = NSLineBreakByCharWrapping;以字符为显示单位显示,后面部分省略不显示。
label.lineBreakMode = NSLineBreakByClipping;剪切与文本宽度相同的内容长度,后半部分被删除。
label.lineBreakMode = NSLineBreakByTruncatingHead;前面部分文字以……方式省略,显示尾部文字内容。
label.lineBreakMode = NSLineBreakByTruncatingMiddle;中间的内容以……方式省略,显示头尾的文字内容。
label.lineBreakMode = NSLineBreakByTruncatingTail;结尾部分的内容以……方式省略,显示头的文字内容。
label.lineBreakMode = NSLineBreakByWordWrapping;以单词为显示单位显示,后面部分省略不显示。
label4.baselineAdjustment = UIBaselineAdjustmentNone;
// typedef enum {
// UIBaselineAdjustmentAlignBaselines,
// UIBaselineAdjustmentAlignCenters,
// UIBaselineAdjustmentNone,
// } UIBaselineAdjustment;

附上UILineBreakMode的各种情况,本人没有一一实验效果。

typedef enum {

   UILineBreakModeWordWrap = 0,

   UILineBreakModeCharacterWrap,

   UILineBreakModeClip,

   UILineBreakModeHeadTruncation,

   UILineBreakModeTailTruncation,

   UILineBreakModeMiddleTruncation,

} UILineBreakMode;





   UILineBreakModeWordWrap = 0,

   以单词为单位换行,以单位为单位截断。

UILineBreakModeCharacterWrap,

   以字符为单位换行,以字符为单位截断。

UILineBreakModeClip,

   以单词为单位换行。以字符为单位截断。

UILineBreakModeHeadTruncation,

   以单词为单位换行。如果是单行,则开始部分有省略号。如果是多行,则中间有省略号,省略号后面有4个字符。

UILineBreakModeTailTruncation,

   以单词为单位换行。无论是单行还是多行,都是末尾有省略号。

UILineBreakModeMiddleTruncation,

   以单词为单位换行。无论是单行还是多行,都是中间有省略号,省略号后面只有2个字符。

特殊效果实现:

1. 竖排文字显示

要实现这个效果,网友给出了四种方法:

1.1 旋转UILabel,这种方法不可选,旋转之后每个字体的方向还是有问题。

1.2 每个文字加一个换行符,这是最方便和简单的实现方式。

label.text
= @"请\n竖\n直\n方\n向\n排\n列";

label.numberOfLines = [label.text length];

1.3 创建新的canvas, 在UILabel上画出竖排文字。

1.4 重写UILabel类,添加竖排文字显示功能。

更多0

iOS开发基础控件--UILabel的更多相关文章

  1. iOS开发基础控件--UISegmentedControl

    UISegmentedControl全局外观设置 分段控件是我们常用的控件之一,今天把具体用法总结了下: 1.初始化UISegmentedControl [plain] view plaincopy ...

  2. iOS开发基础控件--UIButton

    01 //这里创建一个圆角矩形的按钮 02     UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 03 ...

  3. iOS开发基础控件--UITextField

    001 //初始化textfield并设置位置及大小 002   UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20 ...

  4. IOS(一) 基础控件的介绍以及使用

    IOS的界面的制作,相对于Android来说 简洁了很多,虽然创建布局的方式都是两种(代码创建.布局文件) 但是Android中的xml布局文件在某些方面也属于代码创建,因为自己使用到得每一个属性 都 ...

  5. IOS开发之控件篇UITabBarControllor第一章 - 介绍

    UITabBarControllor的基本样子 官方有个图介绍这个TabBar的结构,我们先来看看这个结构图 --------------------------------------------- ...

  6. 【ios开发】控件细究1:UITableView

    工作了将近两个月,共接手两个项目,在项目中用的最多的就是UITableView了,但是也是问题出现的最多的地方,由于一开始不熟练,导致很多问题花了很长时间才解决.所以利用这两天空闲时间,好好梳理一下这 ...

  7. iOS开发-DatePicker控件

    时间控件不管是Android还是iOS中都是必然存在的一个控件,具体的效果大同小异,显示日期,时间,iOS中有四种方式可以选择,Time, Date,Date and Time  , Count Do ...

  8. IOS开发之控件篇UINavigationController第一章 - 介绍

    UINavigationController是一个比较常见的控件,它连接个视图,例如一个视图走到另外一个视图,之间的联系都可以用这个NavigationController的方法 一般都会由两个部分组 ...

  9. IOS开发之控件篇UICollectionViewControllor第一章 - 普通介绍

    1.介绍 UICollectionView和UICollectionViewControllor是IOS6.0后引入的新控件 使用UICollectionView必须实现三个接口: UICollect ...

随机推荐

  1. 命令“"xxx.exe" xxx”已退出,代码为 n。这些错误是什么意思?(3 / 123 / 9009)

    命令“”xxx.exe” xxx”已退出,代码为 n. 我们在 cmd 中输入常见命令的时候,如果命令输入错误或使用错误,cmd 中会提示错误原因,帮助我们定位并解决问题.然而如果相同的命令放到了 V ...

  2. windows下PyCharm运行和调试scrapy

    Scrapy是爬虫抓取框架,Pycharm是强大的python的IDE,为了方便使用需要在PyCharm对scrapy程序进行调试 python PyCharm Scrapy scrapy指令其实就是 ...

  3. python(十一)、线程

    一.基本概念 进程是资源分配的基本单位,而线程则是CPU调度和分派的基本单位.系统需要执行创建进程.撤销进程和进程切换等任务,但创建进程开销大限制了并发的提高.因此,成百上千个进程会造成内存浪费,并且 ...

  4. gradle 插件

    1. 系统内置插件的应用 a. 二进制 apply plugin :"pluginname" 比如: java b. 脚本插件 apply from : "version ...

  5. 使用 Excel 可以很方便的做程序原型

    使用 Excel 可以很方便的做程序原型 比如计算 单片机的端口模式,可以使用 Excel 很方便的计算出来,花了 15 分钟做好. 还可以使用函数自动根据二进制计算出 十六进制. 然后如果再使用软件 ...

  6. CSS内容简单归纳

    具体内容请查阅<CSS参考手册> 一.CSS模块介绍 1.1 CSS1中定义了网页基本属性 字体.颜色.补白.基本选择器等 1.2 CSS2中在CSS1的基础上添加了高级功能 浮动和定位. ...

  7. Eclipse下无法解析注解:@Getter和@Setter

    接触到一个项目,java bean全部使用@Getter和@Setter来偷懒,我用getXXX方法,结果发现编译失败,没法用.后来看到另一个项目也是用了@Getter和@Setter注解,但人家用的 ...

  8. Oracle导出导入表空间创建

    //备份数据库前的sqlplus命令创建数据库dmp存入目录 sqlplus /nolog conn /as sysdba SQL> create or replace directory ex ...

  9. Unit01: Servlet基础 、 HTTP协议

    Unit01: Servlet基础 . HTTP协议 在页面上输出当前时间 package web; import java.io.IOException; import java.io.PrintW ...

  10. C++中如何在顺序容器中删除符合特定条件的元素

    以前很少做删除操作,vector一直当成数组用,而实际追求效率时又经常舍弃vector选用C风格数组.看<C++ Primer>到顺序容器删除这节时试着实现课后习题结果一动手我就出错了. ...