繼承關(guān)系:UIView : UIResponder : NSObject
///UILabel 顯示的文本只讀幔嫂,無法編輯誊薄,可以根據(jù)文字個數(shù)自動換行呢蔫;
///UITextField 可編輯本文,但是無法換行绽昏,只能一行顯示俏脊;當(dāng)點(diǎn)擊鍵盤上的return時,會觸發(fā)事件爷贫。
////UITextView 可編輯文本补憾,提供換行功能余蟹。
1威酒、聲明 初始化 布局
//創(chuàng)建uilabel
UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(20, 40, 280, 80)];
2挺峡、背景色
//設(shè)置背景色
label1.backgroundColor = [UIColor grayColor];
//是否能與用戶交互
label1.userInteractionEnabled = YES;
//設(shè)置tag
label1.tag = 91;
3橱赠、文本 字體 字間距 行間距 段間距
//設(shè)置標(biāo)簽文本
label1.text = @"Hello world!";
//設(shè)置標(biāo)簽文本字體和字體大小
label1.font = [UIFont fontWithName:@"Arial" size:30];
//字體、字號
//系統(tǒng)字體
label.font = [UIFont systemFontOfSize:30.0];
//加粗
label.font = [UIFont boldSystemFontOfSize:30.0];
//斜體
label.font = [UIFont italicSystemFontOfSize:30.0];
//拿到所有字體
NSArray* fonts = [UIFont familyNames];
//通過字體名字設(shè)置字體
label.font = [UIFont fontWithName:[fonts objectAtIndex:5] size:30.0];
//文本最多行數(shù)宰啦,為0時沒有最大行數(shù)限制 自動換行
label1.numberOfLines = 2;
//最小字體赡模,行數(shù)為1時有效漓柑,默認(rèn)為0.0
label1.minimumFontSize = 10.0;
//段 行 字間距
label.numberOfLines = 0;
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text attributes:@{NSKernAttributeName : @(1.5f)}];//字間距
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineSpacing:5.0];//設(shè)置行間距
[paragraphStyle setParagraphSpacing:50.0];//設(shè)置段間距
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [text length])];
label.attributedText = attributedString;
// NSMutableParagraphStyle
4辆布、對齊方式茶鉴、顏色
//設(shè)置文本對其方式
label1.textAlignment = UITextAlignmentCenter;
//文本對齊方式有以下三種
//typedef enum {
// UITextAlignmentLeft = 0,左對齊
// UITextAlignmentCenter,居中對齊
// UITextAlignmentRight, 右對齊
//} UITextAlignment;
//注:現(xiàn)在的版本已經(jīng)棄用上述對齊方式,以下方為主
/* Values for NSTextAlignment */
typedef NS_ENUM(NSInteger, NSTextAlignment) {
NSTextAlignmentLeft = 0, // Visually left aligned
#if TARGET_OS_IPHONE
NSTextAlignmentCenter = 1, // Visually centered
NSTextAlignmentRight = 2, // Visually right aligned
#else /* !TARGET_OS_IPHONE */
NSTextAlignmentRight = 1, // Visually right aligned
NSTextAlignmentCenter = 2, // Visually centered
#endif
NSTextAlignmentJustified = 3, // Fully-justified. The last line in a paragraph is natural-aligned.
NSTextAlignmentNatural = 4, // Indicates the default alignment for script
} NS_ENUM_AVAILABLE_IOS(6_0);
5惭蹂、顏色
//文本顏色
label1.textColor = [UIColor blueColor];
//顏色漸變
label.textColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@""]];
//文本高亮
label1.highlighted = YES;
//高亮顏色
label1.highlightedTextColor = [UIColor blueColor];
//文本是否可變 :未激活剿干,灰色置尔,設(shè)置顏色無效
label1.enabled = YES;
//去掉label背景色
label1.backgroundColor = [UIColor clearColor];
//文本陰影顏色
label1.shadowColor = [UIColor grayColor];
//陰影偏移量
label1.shadowOffset = CGSizeMake(1.0, 1.0);
6榜轿、截取方式
//超出label邊界文字的截取方式
label1.lineBreakMode = UILineBreakModeTailTruncation;
//截取方式有以下6種
//typedef enum {
// UILineBreakModeWordWrap = 0, 以空格為邊界,保留整個單詞
// UILineBreakModeCharacterWrap, 保留整個字符
// UILineBreakModeClip, 到邊界為止
// UILineBreakModeHeadTruncation, 省略開始甸私,以……代替
// UILineBreakModeTailTruncation, 省略結(jié)尾,以……代替
// UILineBreakModeMiddleTruncation,省略中間飞傀,以……代替砸烦,多行時作用于最后一行
//} UILineBreakMode;
7、文本基線 自適應(yīng)大小
//調(diào)整基線 需設(shè)置文本文字自適應(yīng)大小
label1.adjustsFontSizeToFitWidth = YES;
//baselineAdjustment這個值控制文本的基線位置唬格,只有文本行數(shù)為1是有效
label1.baselineAdjustment = UIBaselineAdjustmentAlignCenters;
//有三種方式
//typedef enum {
// UIBaselineAdjustmentAlignBaselines = 0, 默認(rèn)值文本最上端于label中線對齊
// UIBaselineAdjustmentAlignCenters,//文本中線于label中線對齊
// UIBaselineAdjustmentNone,//文本最低端與label中線對齊
//} UIBaselineAdjustment;
8购岗、獲取label
/*
- (void)buttonClick:(UIButton*)button{
//父視圖通過tag值獲取子視圖的指針對象
/*
子視圖可以設(shè)置一個tag值喊积,然后添加到父視圖上,父視圖就可以通過這個tag值拿到子視圖的指針注服。
tag值也可以保存一些用戶的信息。
*/
UILabel* label = (UILabel*)[self.view viewWithTag:100];
label.text = @"我被修改了";
}
*/
9女淑、自適應(yīng)高度
//自動適應(yīng)高度
CGSize size = CGSizeMake(280, 1000);
UIFont *lableFont = [UIFont fontWithName:@"Arial" size:12.0];
CGSize labelSize = [label.text sizeWithFont:lableFont constrainedToSize:size];//7.0 ,現(xiàn)如下
[label1.text boundingRectWithSize:(CGSize) options:(NSStringDrawingOptions) attributes:(NSDictionary *) context:(NSStringDrawingContext *)]
label.frame = CGRectMake(0, 0, 280, labelSize.height);
//或者
CGSize size = [label sizeThatFits:CGSizeMake(200, MAXFLOAT)];//根據(jù)文字的長度返回一個最佳寬度和高度
10鸭你、富文本
//簡單富文本
NSString *text = @"我是大壞蛋哦!";
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:text];
[attributeString setAttributes:@{NSForegroundColorAttributeName : [UIColor yellowColor], NSFontAttributeName : [UIFont systemFontOfSize:18]} range:NSMakeRange(2, 3)];
label1.attributedText = attributeString;
//修改Range 所包含文本的 顏色阁谆、字體大小
11场绿、圓角 邊框
//圓角
label.layer.backgroundColor =[UIColor yellowColor].CGColor;
label.layer.cornerRadius =5.0;
label.layer.frame = CGRectInset(label.layer.frame, 20, 20);
///邊框
label.layer.borderColor = [[UIColor redColor] CGColor];
label.layer.borderWidth = 2;
12嫉入、添加到主視圖
[self.view addSubview:label1];
[label1 release];
13、點(diǎn)擊事件
//添加手勢
UITapGestureRecognizer
不能循環(huán)改變text