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

iOS应用中UILabel文字显示效果的常用设置总结

程序员文章站 2023-12-04 09:46:28
创建uilabel对象 复制代码 代码如下: uilabel* label = [[uilabel alloc] initwithframe:self.view.bou...

创建uilabel对象

复制代码 代码如下:

uilabel* label = [[uilabel alloc] initwithframe:self.view.bounds];

设置显示文本
复制代码 代码如下:

label.text = @"this is a uilabel demo,";

设置文本字体
复制代码 代码如下:

label.font = [uifont fontwithname:@"arial" size:35];

设置文本颜色
复制代码 代码如下:

label.textcolor = [uicolor yellowcolor];

设置文本水平显示位置
复制代码 代码如下:

label.textalignment = uitextalignmentcenter;

设置背景颜色
复制代码 代码如下:

label.backgroundcolor = [uicolor bluecolor];

设置单词折行方式
复制代码 代码如下:

label.linebreakmode = uilinebreakmodewordwrap;

设置label是否可以显示多行,0则显示多行
复制代码 代码如下:

label.numberoflines = 0;

动态调整uilabel高度
复制代码 代码如下:

[label sizetofit];

根据内容大小,动态设置uilabel的高度
复制代码 代码如下:

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; 


换行模式
复制代码 代码如下:

typedef enum {
   uilinebreakmodewordwrap = 0,      // 以空格为边界,保留整个单词
   uilinebreakmodecharacterwrap,     // 保留整个字符
   uilinebreakmodeclip,                     // 到边界为止
   uilinebreakmodeheadtruncation,    // 省略开始,以……代替
   uilinebreakmodetailtruncation,      // 省略结尾,以……代替
   uilinebreakmodemiddletruncation,  // 省略中间,以……代替,多行时作用于最后一行 
} uilinebreakmode;

其他:
   uilinebreakmodewordwrap = 0,
   以单词为单位换行,以单位为单位截断。
   uilinebreakmodecharacterwrap,
   以字符为单位换行,以字符为单位截断。
   uilinebreakmodeclip,
   以单词为单位换行。以字符为单位截断。
   uilinebreakmodeheadtruncation,
   以单词为单位换行。如果是单行,则开始部分有省略号。如果是多行,则中间有省略号,省略号后面有4个字符。
   uilinebreakmodetailtruncation,
   以单词为单位换行。无论是单行还是多行,都是末尾有省略号。
   uilinebreakmodemiddletruncation,
   以单词为单位换行。无论是单行还是多行,都是中间有省略号,省略号后面只有2个字符。

技巧:根据字符串长度自动适应宽度和高度  

复制代码 代码如下:

//这个frame是初设的,没关系,后面还会重新设置其size。
    uilabel *label = [[uilabel alloc] initwithframe:cgrectmake(0,0,0,0)];
    label.numberoflines = 0;
    label.backgroundcolor = [uicolor clearcolor];
   
    nsdictionary *attributes = @{nsfontattributename:[uifont systemfontofsize:20],};
   
    nsstring *str = @"abcdefg你上课可是你的拿到了";
    cgsize textsize = [str boundingrectwithsize:cgsizemake(100, 100) options:nsstringdrawingtruncateslastvisibleline attributes:attributes context:nil].size;;
   
    [label setframe:cgrectmake(100, 100, textsize.width, textsize.height)];
    label.textcolor = [uicolor greencolor];
    label.text = str;
    [self.view addsubview:label];