UIKit 框架之UILabel

简介:

//
//  ViewController.m
//  UILabel
//
//  Created by City--Online on 15/5/18.
//  Copyright (c) 2015年 XQB. All rights reserved.
//
 
#import "ViewController.h"
 
@interface ViewController ()
 
@end
 
@implementation ViewController
 
- (void)viewDidLoad {
    [super viewDidLoad];
    UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(20, 20, 300, 100)];
    //    设置文本内容
    label.text=@"labellabellabellabellabellabellabellabellabellabellabellabellabellabellabellabellabellabellabellabellabellabellabellabellabellabellabellabel";
    //     设置字体
    label.font=[UIFont systemFontOfSize:20];
    //    设置文本颜色
    label.textColor=[UIColor blackColor];
    //    设置阴影颜色
    label.shadowColor=[UIColor yellowColor];
    //    设置阴影偏移量
    label.shadowOffset=CGSizeMake(10, 10);
    //    文本对齐方式
    label.textAlignment=NSTextAlignmentCenter;
    //    文本过长时的显示格式
    //    typedef NS_ENUM(NSInteger, NSLineBreakMode) {
    //        NSLineBreakByWordWrapping = 0,   以单词为显示单位显示,后面部分省略不显示。
    //        NSLineBreakByCharWrapping,       以字符为显示单位显示,后面部分省略不显示。
    //        NSLineBreakByClipping,           剪切与文本宽度相同的内容长度,后半部分被删除。
    //        NSLineBreakByTruncatingHead,     前面部分文字以……方式省略,显示尾部文字内容
    //        NSLineBreakByTruncatingTail,     结尾部分的内容以……方式省略,显示头的文字内容。
    //        NSLineBreakByTruncatingMiddle    中间的内容以……方式省略,显示头尾的文字内容。
    //    }
//    label.lineBreakMode=NSLineBreakByCharWrapping;
    //    最多显示的行数 默认0显示多行
    label.numberOfLines=0;
    //    是否可用
    label.enabled=YES;
    //    是否高亮
    label.highlighted=NO;
    //    高亮字体颜色
    label.highlightedTextColor=[UIColor redColor];
    //自动调整字体来适应宽度
    label.adjustsFontSizeToFitWidth=YES;
    //如果adjustsFontSizeToFitWidth属性设置为YES,这个属性就来控制文本基线的行为。
    //    typedef NS_ENUM(NSInteger, UIBaselineAdjustment) {
    //        UIBaselineAdjustmentAlignBaselines = 0,  默认,文本最上端与中线对齐。
    //        UIBaselineAdjustmentAlignCenters,        文本中线与label中线对齐。
    //        UIBaselineAdjustmentNone,                文本最低端与label中线对齐。
    //    };
    label.baselineAdjustment=UIBaselineAdjustmentAlignBaselines;
    
     
    //    计算UILabel随字体多行后的高度
    CGRect bounds=CGRectMake(0, 0, 200, 300);
    float height=[label textRectForBounds:bounds limitedToNumberOfLines:20].size.height;
    NSLog(@"%f",height);
     
    //    标签属性文本
    NSString *text=@"texttexttexttexttexttexttexttexttexttexttexttexttexttexttexttexttexttexttexttext";
    NSMutableAttributedString *textlabelStr=[[NSMutableAttributedString alloc]initWithString:text];
    [textlabelStr setAttributes:@{NSForegroundColorAttributeName:[UIColor redColor],NSFontAttributeName:[UIFont systemFontOfSize:17]} range:NSMakeRange(1, 2)];
    //下划线
    NSRange contentRange={0,text.length};
    [textlabelStr addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:contentRange];
    label.attributedText=textlabelStr;
     
    //设置行间距
    NSMutableParagraphStyle  *paragraphStyle=[[NSMutableParagraphStyle alloc]init];
    paragraphStyle.lineSpacing=50;
    [textlabelStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, text.length)];
     
    [self.view addSubview:label];
     
    
    //根据文本计算文本高度
//    CGSize size=[label.text boundingRectWithSize:CGSizeMake(300, 100) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:20]} context:nil].size;
//    label.frame=CGRectMake(20, 20, size.width, size.height);
    
     
    //竖排文字
    UILabel *label1=[[UILabel alloc]init];
    label1.frame=CGRectMake(200, 200, 40, 200);
    label1.text=@"请\n竖\n直\n方\n向\n排\n列";
    label1.numberOfLines=[label1.text length];
    [self.view addSubview:label1];
     
     
     
     
}
 
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
@end


 

相关文章