UILabel

创建一个UILabel 对象

UILabel *otherLab = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 20)];

设置文本

otherLab.text = @"文本内容";

设置文本字体

otherLab.font = [UIFont systemFontOfSize:15];

或

otherLab.font = [UIFont fontWithName:@"Arial" size:35];

设置文本颜色

otherLab.textColor =  [UIColor redColor];

设置文本水平显示位置

otherLab.textAlignment = NSTextAlignmentCenter;  //不能用otherLab.textAlignment = UITextAlignmentCenter; 因为UITextAlignmentCenter已经过期不能用

设置label是否可以显示多行,0则显示多行

otherLab.numberOfLines = 0;

根据内容大小,动态设置UILabel的宽高度

  

/**
*   计算文字的尺寸
*
*   参数一 text,UILabel的文字内容
*   参数二 font,文字内容的字体
*   参数三 maxSize,UILabel最大宽度和高度
*/

 

- (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font maxSize:(CGSize)maxSize

  {

      //计算昵称文字在屏幕上占据的宽度和高度(以下这方法是用来计算左右这段文字在屏幕上占据多宽和多高)
      if (font == NULL)
      {
          return CGSizeMake(0, 0);
        }else{
          NSDictionary *attrs = @{NSFontAttributeName : font};
          CGSize sizr = [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
          return sizr;
      }
}

    // 方法调用

    //#define SCREEN_WIDTH [[UIScreen mainScreen]bounds].size.width   --------宏定义 SCREEN_WIDTH 为屏幕宽度 

        UILabel *otherLab = [[UILabel alloc]init];

       

     otherLab.numberOfLines = 0; //允许换行

       NSString *name = @"姓名";

       CGSize productNameSize = [self sizeWithText:name font:otherLab.font maxSize:CGSizeMake(SCREEN_WIDTH * 0.7, MAXFLOAT)];
       otherLab.frame = CGRectMake(10, 20, productNameSize.width, productNameSize.height);

换行模式

typedef enum {
    UILineBreakModeWordWrap = 0,      // 以空格为边界,保留整个单词
   UILineBreakModeCharacterWrap,     // 保留整个字符
   UILineBreakModeClip,                     // 到边界为止
   UILineBreakModeHeadTruncation,    // 省略开始,以……代替
   UILineBreakModeTailTruncation,      // 省略结尾,以……代替 
   UILineBreakModeMiddleTruncation,  // 省略中间,以……代替,多行时作用于最后一行  
 } UILineBreakMode

 

posted @ 2016-07-04 17:42  低头捡到蛋  阅读(173)  评论(0)    收藏  举报