zoukankan      html  css  js  c++  java
  • iOS开发基础控件--UILabel

    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 = @"请 竖 直 方 向 排 列";
    label.numberOfLines = [label.text length];


    1.3 创建新的canvas, 在UILabel上画出竖排文字。


    1.4 重写UILabel类,添加竖排文字显示功能。

    更多0
查看全文
  • 相关阅读:
    POJ 2492 并查集扩展(判断同性恋问题)
    菜鸟带你飞______DP基础26道水题
    HDU 1978 记忆化搜索(dfs+dp)
    HDU 1203 I NEED A OFFER (01背包&&概率dp)
    HDU 1176免费馅饼 DP数塔问题转化
    HDU 1069&&HDU 1087 (DP 最长序列之和)
    最短路&&最小生成树水题
    POJ 1797 Heavy Transportation (Dijkstra变形)
    数论学习笔记
    Codeforces Round #579 (Div. 3)
  • 原文地址:https://www.cnblogs.com/songfeixiang/p/3733732.html
  • Copyright © 2011-2022 走看看