欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

ios开发UI篇--UILabel

程序员文章站 2022-05-27 22:15:25
概述 UILabel类实现了一个只读文本视图。你可以使用这个类来画一个或多个静态文本.UILabel类支持既简单又复杂的样式标签文本,还可以控制外观,比如标签是否使用了一个影子或者处于高亮状态等等. UILabel类继承自UIView 属性 创建UILabel对象 UILabel *label = ......

概述

  • uilabel类实现了一个只读文本视图。你可以使用这个类来画一个或多个静态文本.uilabel类支持既简单又复杂的样式标签文本,还可以控制外观,比如标签是否使用了一个影子或者处于高亮状态等等.
  • uilabel类继承自uiview

属性

创建uilabel对象

 uilabel *label = [[uilabel alloc] initwithframe:cgrectmake(0, 0, 100, 100)];

设置显示文字,默认是空的

label.text = @"测试";

设置字体(系统默认字体是16号字体)

label.font = [uifont systemfontofsize:16];

设置字体颜色(默认是黑色)

label.textcolor = [uicolor redcolor];

设置对齐方式(在ios 9之后,此属性的默认值是 nstextalignmentnatural;之前的ios 9,默认值为nstextalignmentleft。)

居左 nstextalignmentleft
居中 nstextalignmentcenter
居右 nstextalignmentright
label.textalignment = nstextalignmentcenter;

设置换行模式

以一个单词为单位换行,最后一行显示不全内容以单词截断,后面直接不显示 nslinebreakbywordwrapping
以字符换行 nslinebreakbycharwrapping
以一个单词为单位换行,最后一行显示不全的内容,在label的最后直接截断,后面直接不显示 nslinebreakbyclipping
显示不全;最后一行将最后的内容显示,前面使用...代替 例:truncate at head of line: "...wxyasdasdz" nslinebreakbytruncatinghead
显示不全;最后一行将前面的内容显示,最后使用...代替 例:truncate at tail of line: "abcd..." nslinebreakbytruncatingtail
显示不全;最后一行将前面的内容显示和最后的内容显示,中间使用...代替 nslinebreakbytruncatingmiddle
label.linebreakmode = nslinebreakbywordwrapping;

设置阴影颜色

label.shadowcolor = [uicolor greencolor];

设置阴影的偏移量,默认是 cgsizemake(0, -1) -- a top shadow

label.shadowoffset = cgsizemake(0, -2);

设置行数(当文本需要自适应时,需将行数设置为0)

 label.numberoflines = 0;

adjustsfontsizetofitwidth 根据宽度调整font,默认为 no

label.adjustsfontsizetofitwidth = yes;

attributedtext 属性文本,这里不多做介绍,

高亮属性

设置是否处于高亮状态

[label sethighlighted:yes];

设置高亮状态字体的颜色

label.highlightedtextcolor = [uicolor bluecolor];

设置能否进行用户交互(默认为no)

label.userinteractionenabled = yes;

此属性只决定如何绘制标签。禁用的文本有些模糊,表示它不活跃。默认情况下,此属性被设置为yes。

label.enabled = no;

自适应

default is no 设置字体大小适应label宽度

label.adjustsfontsizetofitwidth = yes;

default is uibaselineadjustmentalignbaselines //如果adjustsfontsizetofitwidth属性设置为yes,这个属性就来控制文本基线的行为

label.baselineadjustment = uibaselineadjustmentalignbaselines;

项目中label自适应高度代码

+ (cgfloat)getheightbywidth:(cgfloat)width title:(nsstring *)title font:(uifont *)font
{
    
    uilabel *label = [[uilabel alloc] initwithframe:cgrectmake(0, 0, width, 0)];
    label.text = title;
    label.font = font;
    label.numberoflines = 0;
    [label sizetofit];
    cgfloat height = label.frame.size.height;
    return height;
}

项目中label自适应宽度的代码

+ (cgfloat)getwidthwithtitle:(nsstring *)title font:(uifont *)font {
    uilabel *label = [[uilabel alloc] initwithframe:cgrectmake(0, 0, 1000, 0)];
    label.text = title;
    label.font = font;
    [label sizetofit];
    return label.frame.size.width;
}

作者: