美文网首页
7. UILable

7. UILable

作者: LucXion | 来源:发表于2017-09-14 08:51 被阅读0次

标签:常用属性、设置行间距字间距并计算高度

  • 设置 lable 的行字间距
// 通过富文本属性设置行间距,字间距
/**
 设置lable的字体间距

 @param lable lable
 @param content 内容文本
 @param font 字体
 @param fontSpace 字间距
 @param lineSpace 行间距
 */
-(void)setLableLineSpacing:(UILabel*)lable andContent:(NSString*)content andFont:(UIFont*)font andChartSpace:(CGFloat)fontSpace andLineSpace:(NSInteger)lineSpace{

    //通过富文本属性设置行间距
    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:content];
    
    //设置行间距
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    [paragraphStyle setLineSpacing:lineSpace];
    [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [content length])];
    
    //设置字间距
    [attributedString addAttribute:NSKernAttributeName value:@(fontSpace) range:NSMakeRange(0, [content length])];
    
    //设置字体
    [attributedString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, [content length])];
    
    lable.attributedText = attributedString;

    [lable sizeToFit];
}

通过赋值一个设置相同的lable计算行高
/**
 计算lable高度(含行间距)
 
 @param content 内容
 @param font 字体
 @param fontSpace 字体间距
 @param lineSpace 行间距
 @return 高度
 */
-(CGFloat)computeLableHeightWithContent:(NSString*)content andFont:(UIFont*)font andChartSpace:(CGFloat)fontSpace andLineSpace:(NSInteger)lineSpace{
    
    //创建临时的lable计算高度(lable属性要和设置的lable一致)
    UILabel *tempLable = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, screenWidth - 25, 16)];
    
    tempLable.numberOfLines = 0;
    
    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:content];
    
    //设置行间距
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    [paragraphStyle setLineSpacing:lineSpace];
    [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [content length])];
    
    //设置字间距
    [attributedString addAttribute:NSKernAttributeName value:@(fontSpace) range:NSMakeRange(0, [content length])];
    
    //设置字体
    [attributedString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, [content length])];
    
    tempLable.attributedText = attributedString;
    [tempLable sizeToFit];
    
    return tempLable.frame.size.height;
}

2.attributedText:设置标签副文本

  NSString *text = @"first";  
  NSMutableAttributedString *textLabelStr = [[NSMutableAttributedString alloc] initWithString:text];  
  [textLabelStr setAttributes:@{NSForegroundColorAttributeName : [UIColor lightGrayColor],   
   NSFontAttributeName : [UIFont systemFontOfSize:17]} range:NSMakeRange(11, 10)];
  label.attributedText = textLabelStr;  

3.font:设置标签文本字体。
默认是系统自带字体,大小为17。

label.font = [UIFont systemFontOfSize:17]
label.font = [UIFont fontWithName:@"Arial" size:16];  
label.textColor = [UIColor blueColor];

4.textAlignment:设置标签文本对齐方式。

label.textAlignment = NSTextAlignmentCenter;  

5.lineBreakMode:设置标签文字过长时的显示方式
这个属性使用于label中文本的换行和截短。首先numberofLines必须设置为0,才有效果。

// 以字符为显示单位显示,后面部分省略不显示。  
label.lineBreakMode = NSLineBreakByCharWrapping;
// 剪切与文本宽度相同的内容长度,后半部分被删除。  
label.lineBreakMode = NSLineBreakByClipping;
// 前面部分文字以……方式省略,显示尾部文字内容。  
label.lineBreakMode = NSLineBreakByTruncatingHead;
// 中间的内容以……方式省略,显示头尾的文字内容。  
label.lineBreakMode = NSLineBreakByTruncatingMiddle;
// 结尾部分的内容以……方式省略,显示头的文字内容。  
label.lineBreakMode = NSLineBreakByTruncatingTail;
// 以单词为显示单位显示,后面部分省略不显示。  
label.lineBreakMode = NSLineBreakByWordWrapping;
比如:
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakByTruncatingMiddle;

6.enabled:设置文字内容是否可变。

7.adjustsFontSizeToFitWidth:文字内容自适应标签宽度。

8.adjustsLetterSpacingToFitWidth:根据字母的间隔自适应标签宽度,超出部分以……显示。

9.numberOfLines:标签最多显示行数。

10.minimumScaleFactor:设置最小字体
与minimumFontSize相同,minimumFontSize在IOS 6后不能使用。

11.highlightedTextColor:设置文本高亮显示颜色,与highlighted一起使用。

12.shadowColor:设置文本阴影颜色。

13.shadowOffset:设置文本阴影与原文本的偏移量。

label.shadowOffset = CGSizeMake(1.0, 5.0); 

14.userInteractionEnabled:设置标签是否忽略或移除用户交互。默认为NO。

15.preferredMaxLayoutWidth:优先选择标签布局的最大宽度。

16.baselineAdjustment:如果adjustsFontSizeToFitWidth属性设置为YES,这个属性就来控制文本基线的行为。

label4.baselineAdjustment = UIBaselineAdjustmentNone;  
// 默认,文本最上端与中线对齐。  
UIBaselineAdjustmentAlignBaselines=0,
// 文本中线与label中线对齐。  
UIBaselineAdjustmentAlignCenters,   
// 文本最低端与label中线对齐。
UIBaselineAdjustmentNone,  

17. backgroundColor 背景颜色

// 清空背景颜色 
label1.backgroundColor = [UIColor clearColor];

相关文章

  • 7. UILable

    标签:常用属性、设置行间距字间距并计算高度 设置 lable 的行字间距 2.attributedText:设置标...

  • iOS 小知识

    UILabel 通过文字计算宽高 UILable *lable=[UILable alloc]init]; lab...

  • iOS加载Html文本

    UILable||UITextView加载html 使用UILable或TextView比较方便,但是字体样式无法...

  • iOS开发初级(一、基础002)

    UILable、UIImageView、UIButton的拓展:三个控件,当显示文字时,使用UILable,当显示...

  • UILabel顶格显示

    UILable的Category

  • UILable

    UILable是UIKit下的控件,继承UIView,是iOS开发常用的控件。 项目中一般的用法: 多行显示 如果...

  • UILable

    UILable 是一个只读的文本视图,使用这个类绘制单行或者多行的静态文本。你可以将 UILable 作为你界面的...

  • UILable

    /显示下划线 //中划线 // NSDictionary *attribtDic = @{NSStriket...

  • UILable

    UILable summary UILabel的常见属性 UIFont类 Method Demo

  • UILable

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen ...

网友评论

      本文标题:7. UILable

      本文链接:https://www.haomeiwen.com/subject/snursxtx.html