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. NullReferenceException,就不应该存在!

    如果要你说出 .NET 中的三个异常,NullReferenceException 一定会成为其中一个:如果说出 .NET 中的一个异常,NullReferenceException 也会被大多数人说 ...

  2. 使用 Task.Wait()?立刻死锁(deadlock)

    最近读到一篇异步转同步的文章,发现其中没有考虑到异步转同步过程中发生的死锁问题,所以特地在本文说说异步转同步过程中的死锁问题. 文章作者 林德熙 已经修复了描述: - win10 uwp 异步转同步 ...

  3. mysql主从简单配置

    第一步.配置主从,来自于博文 https://www.cnblogs.com/gl-developer/p/6170423.html 下面配置的步骤就直接复制了. 一.准备工作: 1.主从数据库版本最 ...

  4. 【mysql】VS2017 EF使用 mysql

    要在vs2017中能打开mysql的连接,需要安装以下扩展 mysql-connector-net-6.9.9+.msi [这里注意不要下载最新8.x.y版本,有坑]mysql-for-visuals ...

  5. python编程规范系列--建议01~07

    本系列来自<编写高质量代码 改善python程序的91个建议>的读书笔记整理. 本书主要内容     1)容易被忽视的重要概念和常识,如代码的布局和编写函数的原则等:     2)编写py ...

  6. 简单安装MySQL(RPM方式)

    本次测试使用一台ip为192.168.2.21的虚拟机 下边的步骤虽然多,但是跟着命令或者复制粘贴命令即可完成操作,并无难点 1.安装准备 MySQL-server-5.6.35-1.linux_gl ...

  7. 树的遍历——pat1043

    http://pat.zju.edu.cn/contests/pat-a-practise/1043 给予N个数字组成二叉搜索树,判断这个数列是否由先序遍历得出或是镜像先序遍历得出,若是则输出相应的后 ...

  8. 修改配置文件matplotlibrc,让Matplotlib显示中文

    matplotlib默认不支持中文显示,网上的解决办法有好多种,但是大多数都是通过在代码中指定字体,虽然也能实现,但是多出那么几行代码让人觉得很恶心. 本文介绍一种通过修改配置文件matplotlib ...

  9. ACM-世界岛旅行

    [问题描述] 某旅游公司组团去迪拜世界岛旅游.世界岛由n个岛屿组成,岛屿序号为1-n,这些岛屿都直接或间接相连.岛屿之间用桥梁连接.现从1号岛屿开始游览,并约定按如下方式游览: 1) 每游览完一个岛屿 ...

  10. ubuntu64,ndk-r9 编译 ffmpeg 2.1.1的config文件

    #!/bin/bash NDK_ROOT=/home/wjh/fox/android-ndk-r9c/ PREBUILT=${NDK_ROOT}toolchains/arm-linux-android ...