UILabel 属性详解与使用心得

UILabel作为一个展示文字的控件,功能比较强大,可以展示普通文本,富文本,多行文字。

1.初始化UILabel

UILabel *titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 50)];
titleLabel.text = @"test";

2.属性介绍

//设置label的文字

titleLabel.text = @"我的测试文字";

//设置label的字体

titleLabel.font = [UIFont systemFontOfSize:12];

//设置label的颜色

//default is nil (text draws black)
 titleLabel.textColor = [UIColor grayColor];

//设置label的阴影颜色和偏移

titleLabel.shadowColor = [UIColor redColor]; titleLabel.shadowOffset = CGSizeMake(10, 10);

//设置文字对齐方式

titleLabel.textAlignment = UITextAlignmentLeft;//文字靠左
titleLabel.textAlignment = UITextAlignmentCenter;//文字居中
titleLabel.textAlignment = UITextAlignmentRight;//文字靠右

//设置文案的换行模式

titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;//截取末尾
typedef NS_ENUM(NSInteger, NSLineBreakMode) {
    NSLineBreakByWordWrapping = 0,      // Wrap at word boundaries, default
    NSLineBreakByCharWrapping,      // Wrap at character boundaries
    NSLineBreakByClipping,      // Simply clip
    NSLineBreakByTruncatingHead,    // Truncate at head of line: "...wxyz" //截取头部
    NSLineBreakByTruncatingTail,    // Truncate at tail of line: "abcd..." 截取末尾
    NSLineBreakByTruncatingMiddle   // Truncate middle of line:  "ab...yz" 截取中间
} 

//设置富文本

titleLabel.attributedText = [[NSAttributedString alloc] initWithString:@"我是富文本"];

//设置高亮状态相关

 titleLabel.highlightedTextColor = [UIColor greenColor];
 titleLabel.highlighted = YES;

//label 交互以及是否可用

//默认不能交互,如添加手势不生效
 titleLabel.userInteractionEnabled = YES;
 titleLabel.enabled = YES;

//设置label显示的行数

//0表示显示任意行
titleLabel.numberOfLines = 0;

//设置label是否自适应字体大小

titleLabel.adjustsFontSizeToFitWidth = YES;

//设置label基线对齐方式(当adjustsFontSizeToFitWidth= YES时生效)
//默认对齐方式

typedef enum {    
      UIBaselineAdjustmentAlignBaselines,   //默认值文本最上端与label中间线对齐 
      UIBaselineAdjustmentAlignCenters,   //text中间与label中间线对齐
      UIBaselineAdjustmentNone,    //text最低端与label中间线对齐
 } UIBaselineAdjustment;    

titleLabel.baselineAdjustment = UIBaselineAdjustmentAlignBaselines;

//设置最小缩放字体(当adjustsFontSizeToFitWidth= YES,指定了最小缩放字体)

titleLabel.minimumScaleFactor = 20;

//label截断是否紧缩文字

//The default value of this property is NO.
titleLabel.allowsDefaultTighteningForTruncation = YES;

3.使用技巧

1.设置文字的时候,通过 [titleLabel sizeToFit]可以自适应文字。
NOTE:在sizeToFit之前需要指定label的宽度。
2.当需要根据字体和文字大小自适应的时候,可以使用adjustsFontSizeToFitWidth属性,进行给定宽高适配。
NOTE:默认文字顶部和中心对齐,可以设置titleLabel.baselineAdjustment = UIBaselineAdjustmentAlignBaselines; 解决。
也可以使用NSString的方法,计算出适应字体的大小,不过这个接口在iOS7废弃了。

//通过指定字体,设置最小字体,宽度,以及换行模式,返回对应的字体。
    CGFloat fontSizeThatFits; 
   [tempString sizeWithFont: [UIFont systemFontOfSize:12] minFontSize:20  actualFontSize:&fontSizeThatFits forWidth:self.cg_width lineBreakMode:NSLineBreakByWordWrapping];

3.当照片和文字需要显示在多行一起显示的时候,可以通过富文本显示。
NOTE:单纯的照片可以使用NSTextAttachment,复杂的交互可以使用CoreText。

           UIImage *image = [UIImage imageWithColor:[UIColor clearColor]];;
           NSTextAttachment *attach = [[NSTextAttachment alloc] init];
           attach.image = image;
           attach.bounds = CGRectMake(0, 0, 0, 20);
           NSAttributedString *textAttachmentString = [NSAttributedString attributedStringWithAttachment:attach];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,692评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,482评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,995评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,223评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,245评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,208评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,091评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,929评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,346评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,570评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,739评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,437评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,037评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,677评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,833评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,760评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,647评论 2 354

推荐阅读更多精彩内容

  • 常用属性和方法有: 1、创建 CGRect rect = CGRectMake(100,200,50,50);UI...
    西蜀阅读 4,867评论 0 3
  • 一、简介 <<UILabel类实现一个只读的文本视图。您可以使用这个类的静态文本,如你可能会使用它来识别你的用户界...
    无邪8阅读 1,258评论 0 0
  • ·UILable是iPhone界面最基本的控件,主要用来显示文本信息。 ·常用属性和方法有: 1、创建 CGRec...
    默默_David阅读 502评论 0 0
  • 计算就粗心,这种情况普遍的存在于孩子当中,很多人会在孩子遇到这种情形的时候,给孩子戴上一个粗心的帽子,从此粗心就成...
    行者无疆007阅读 135评论 0 0
  • 我俯在寂寞的窗口遥望往事 孤独的风吹过 我感到彻骨的悲凉 记忆像流星划过无边的天网 我企盼的目光却穿不透这浓浓的暗...
    吉祥猫阅读 250评论 0 0