// 初始化标签
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 300, 150)];
// 设置标签文字
label.text = @"This is a test text.This is a test text.This is a test text.";
// 设置标签文字字体
// 使用系统字体
label.font = [UIFont systemFontOfSize:20];
// 使用系统字体加粗
//label.font = [UIFont boldSystemFontOfSize:20];
// 指定字体
//label.font = [UIFont fontWithName:@"Arial" size:20];
// 设置标签文字颜色
label.textColor = [UIColor redColor];
// 设置标签背景颜色
label.backgroundColor = [UIColor clearColor];
// 设置标签文字对齐方式
label.textAlignment = NSTextAlignmentCenter; // iOS7中文本对齐方式有下面几种:
// enum {
// NSTextAlignmentLeft = 0, 左对齐。默认
// NSTextAlignmentCenter = 1, 居中对齐
// NSTextAlignmentRight = 2, 右对齐
// NSTextAlignmentJustified = 3, 在一个段落的最后一行自然对齐
// NSTextAlignmentNatural = 4, 默认对齐方式
// } NSTextAlignment; // 设置标签文字自己主动折行方式
label.lineBreakMode = NSLineBreakByWordWrapping; // enum {
// NSLineBreakByWordWrapping = 0, 以单词为显示单位显示。后面部分省略不显示。默认
// NSLineBreakByCharWrapping, 以字符为显示单位显示,后面部分省略不显示
// NSLineBreakByClipping, 剪切与文本宽度同样的内容长度。后半部分被删除
// NSLineBreakByTruncatingHead, 开头省略,显示尾部文字内容
// NSLineBreakByTruncatingTail, 结尾省略,显示开头的文字内容
// NSLineBreakByTruncatingMiddle 中间省略。显示头尾的文字内容
// } NSLineBreakMode; // 设置标签文字行数,0表示多行
label.numberOfLines = 0;
// 设置阴影颜色
[label setShadowColor:[UIColor blackColor]];
// 设置阴影偏移量
[label setShadowOffset:CGSizeMake(-1, -1)];
// 改变字母之间的间距来适应Label大小
label.adjustsLetterSpacingToFitWidth = NO;
// 设置字体大小适应label宽度
label.adjustsFontSizeToFitWidth = YES;
// 假设adjustsFontSizeToFitWidth属性设置为YES。这个属性就来控制文本基线的行为
label.baselineAdjustment = UIBaselineAdjustmentNone; // 文本基线类型有下面几种:
// typedef enum {
// UIBaselineAdjustmentAlignBaselines, 文本最上端与中线对齐。默认
// UIBaselineAdjustmentAlignCenters, 文本中线与标签中线对齐
// UIBaselineAdjustmentNone, 文本最底端与标签中线对齐
// } UIBaselineAdjustment; //设置是否能与用户进行交互
label.userInteractionEnabled = YES;
//设置标签文字是否可变。默觉得YES
label.enabled = NO;
// 设置标签边框
label.layer.borderColor = [[UIColor grayColor] CGColor];
// 设置边框粗细
label.layer.borderWidth = 2; // 多行标签高度自适应
// 设置标签字体属性
NSDictionary *labelAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:20], NSFontAttributeName, nil];
// 获取标签依据文本和字体自适应后的高度,此处CGSizeMake为最大外框大小
CGFloat labelHeight = [@“This is a test text.This is a test text.This is a test text.” boundingRectWithSize:CGSizeMake(280, 200) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:labelAttributes context:nil].size.height;

本文固定链接:http://www.itechzero.com/ios-development-series-two-uilabel-usage-summary.html。转载请注明出处。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

iOS发展系列II - UILabel 使用摘要的更多相关文章

  1. iOS开发系列--网络开发

    概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...

  2. iOS开发系列--Swift语言

    概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...

  3. iOS开发系列--App扩展开发

    概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...

  4. iOS开发系列--Swift进阶

    概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...

  5. iOS开发系列--通知与消息机制

    概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情.iOS中通知机制又叫消息机制,其包括两类:一类是本地 ...

  6. iOS开发系列--数据存取

    概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库.例如前面IOS开发系列-Objective-C之Foundation框架的文章中提到归档.plist文件存储, ...

  7. iOS开发系列--并行开发其实很容易

    --多线程开发 概览 大家都知道,在开发过程中应该尽可能减少用户等待时间,让程序尽可能快的完成运算.可是无论是哪种语言开发的程序最终往往转换成汇编语言进而解释成机器码来执行.但是机器码是按顺序执行的, ...

  8. 【转】iOS开发系列--数据存取

    原文: http://www.cnblogs.com/kenshincui/p/4077833.html#SQLite 概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储 ...

  9. iOS发展 - 使用您自己的自定义字体

    一位同事问我最后一次,XXapp字体如何萌啊? 我也想提出萌哒哒的字体!然后,今天有这blog. 首先,我们正处于iOS发展,苹果给了我们很多的字体,当然,我就不一一列举在这里,英文,小汤表示看不懂啦 ...

随机推荐

  1. UVA 1513 - Movie collection(树状数组)

    UVA 1513 - Movie collection option=com_onlinejudge&Itemid=8&page=show_problem&category=5 ...

  2. SplitContainer如何实现左侧导航,正确显示和导航内容

    关于这种类型的设计有很多的实现,这样,我首先解释一下我使用: 我的原则是实现方式,将form嵌panel在,作为一个子窗口. 如下面的代码细节: Form form = new DataSelect( ...

  3. Cocostudio学习笔记(4) LoadingBar+ TextField

    这同时录制两个控件的使用方法:LoadingBar和 TextField. -------------------------------------------------------------- ...

  4. 自己实现的Boost库中的lexical_cast随意类型转换

    知道了C++的I/O设施之后.这些就变的非常easy了. 假设你常常使用,时间长了就会有感觉.这个事情是多此一举吗?就当是练习吧,知道原理之后,你会认为用起来更舒畅,更喜欢C++了. #include ...

  5. selinux 工具下载地址

    http://userspace.selinuxproject.org/releases/ 里面包含了 Name Last modified Size Description Parent Direc ...

  6. POJ 1019 Number Sequence 解读

    这是一个看似简单,其实很难受. 本来我想发挥它的标题轨道基础.没想到反被消遣-_-|||. 看它在个人基础上,良好的数学就干脆点,但由于过于频繁,需求将被纳入全,因此,应该难度4星以上. 方法就是直接 ...

  7. js“分享到”侧边框伸缩实现

    思路: 1,临界值是 -150 和 0 如果大于临界值,就要隐藏 2,隐藏:速度为负 显示:速度为正 3,如果与临界值相等,就清空定时器 否则,就运动 ------------------------ ...

  8. 微软中国裁员曝光:在CD结束后!薪酬不变!

    聚众抗议的前诺基亚员工(腾讯科技配图) 腾讯科技 郭晓峰 腾讯科技刚刚获取了一份微软设备事业部中国区管理团队4日晚间发给被裁员工的补偿方案邮件. 邮件内容显示,微软承诺在收购诺基亚交易结束(2014年 ...

  9. Linux 编程学习笔记----过程管理和项目发展(在)

    转载请注明出处,http://blog.csdn.net/suool/article/details/38406211,谢谢. Linux进程存储结构和进程结构 可运行文件结构 例如以下图: 能够看出 ...

  10. node.js基础:模块的创建和引入

    模块可能是一个文件,也可能是包含一个或多个文件的目录.如果模块是个目录,node.js通常会在这个目录下找一个叫index.js的文件作为模块的入口. 典型的模块是一个包含exports对象属性定义的 ...