iOS之UILabel显示内容自动换行

来源:互联网 发布:兄弟连java观察者模式 编辑:程序博客网 时间:2024/06/05 17:34

原文链接:点击打开链接

  1. 1UILabel内容自动换行  
  2. UIFont *fontName [UIFont systemFontOfSize:16.0f];  
  3. //定义字体大小  
  4. CGSize sizeName [orderFood.food_name   
  5. sizeWithFont:fontName constrainedToSize:CGSizeMake(130.0f,MAXFLOAT)
  6. // 这里最好用MAXFLOAT ,是系统的一定可以确保你换行成功
  7.  signLabel.text = [NSString stringWithFormat:@"%@",sigStr] ;

                    CGSize  size = [signLabel.text sizeWithFont:signLabel.font                 constrainedToSize:CGSizeMake(signLabel.frame.size.widthsignLabel.text.length)lineBreakMode:NSLineBreakByWordWrapping];

                    signLabel.frame = CGRectMake(signLabel.frame.origin.x, signLabel.frame.origin.y,size.width, size.height);

    之前我的代码中的高度,直接用字符串的长度来设置,结果如果字符串比较长的话可以换行成功,如果短一些都不能换行成功,原因不明

  8.  lineBreakMode:UILineBreakModeWordWrap];  
  9. //orderFood.food_name为字符串,即UILabel要显示的内容;fontName 字体大小;CGSizeMake(130.0f,MAXFLOAT) UILabel显示内容的宽度130.0fMAXFLOAT为显示内容所允许的最大高度,最终得到的sizeName,其width,heightwei值为显示内容所需显示的实际宽度与高度;UILineBreakModeWordWrap以单词为单位换行,以单词为单位截断。  
  10. //定义显示内容的UILabel,宽度为130,高度为经过sizeName.height  
  11. UILabel *lbFoodName [[UILabel alloc]initWithFrame:  
  12. CGRectMake(94, 2, 130, sizeName.height)];  
  13. [lbFoodName setText:orderFood.food_name];  
  14. [lbFoodName setBackgroundColor:[UIColor clearColor]];  
  15. [lbFoodName setFont:[UIFont systemFontOfSize:16.0f]];  
  16. [lbFoodName setNumberOfLines:0];  
  17. //注意这里UILabelnumberoflines(即最大行数限制)设置成0,即不做行数限制。  
  18. [lbFoodName setLineBreakMode:  
  19. UILineBreakModeWordWrap];  
  20. //UILabel加入到tvCell View中显示。  
  21. [tvCell.contentView addSubview:lbFoodName];  
  22.   
  23. 2UILineBreakModeWordWrap详细解释如下:  
  24. typedef enum  
  25.    UILineBreakModeWordWrap 0,  
  26.    UILineBreakModeCharacterWrap,  
  27.    UILineBreakModeClip,  
  28.    UILineBreakModeHeadTruncation,  
  29.    UILineBreakModeTailTruncation,  
  30.    UILineBreakModeMiddleTruncation,  
  31. UILineBreakMode;  
  32.   
  33.   
  34.    UILineBreakModeWordWrap 0,  
  35.    以单词为单位换行,以单词为单位截断。  
  36.    UILineBreakModeCharacterWrap,  
  37.    以字符为单位换行,以字符为单位截断。  
  38.    UILineBreakModeClip,  
  39.    以单词为单位换行。以字符为单位截断。  
  40.    UILineBreakModeHeadTruncation,  
  41.    以单词为单位换行。如果是单行,则开始部分有省略号。如果是多行,则中间有省略号,省略号后面有4个字符。  
  42.    UILineBreakModeTailTruncation,  
  43.    以单词为单位换行。无论是单行还是多行,都是末尾有省略号。  
  44.    UILineBreakModeMiddleTruncation,  
  45.    以单词为单位换行。无论是单行还是多行,都是中间有省略号,省略号后面只有2个字符。  
  46.   
  47. 3UITextView根据内容自动调整高度与此类似,不多做说明。 

0 0
原创粉丝点击