您的位置:首页 > 产品设计 > UI/UE

UILabel的简单使用介绍

2015-11-18 14:35 459 查看
首先创建一个label ,label是继承自UIView的

UILabel *myLabel = [[UILabelalloc]init];

CGFloat labelW = 200;

CGFloat labelX = (self.view.frame.size.width -
labelW)/2;

myLabel.frame = CGRectMake(labelX,100, labelW,
50);

myLabel.backgroundColor = [UIColorlightGrayColor];

_myLabel = myLabel;

[self.view
addSubview:myLabel];

设置label的文字默认是nil

myLabel.text = @"依然fantasyfantasyfantasyfantasy";

设置label的字体大小默认是17

myLabel.font = [UIFont systemFontOfSize:30];

设置label的字体颜色默认的是nil

但是你不设置颜色的话
打印字体颜色的时候会出现UIDeviceWhiteColorSpace 0
1

这个颜色是[UIColor colorWithWhite:0 alpha:1];所以默认字体颜色是黑色

myLabel.textColor = [UIColor yellowColor];

在字上的阴影上的颜色 默认是空得没有shadowColor

myLabel.shadowColor = [UIColor redColor];

字体颜色的阴影颜色在字体的哪一个方向 默认是(0,-1)是上面

(0,1)是下面(1,0)是右边(-1,0)是左边(-1,-1)是左上依次下去

正负代表方向 数值代表距离的点数

(0,0)代表没有shadowColor

myLabel.shadowOffset = CGSizeMake(0,
0);

这个属性决定了一个label显示文字的行数默认是1就一行

如是0的话就是可以有无限行

如果文本的高度达到了控件的高度 或者超过了
都会启用lineBreakMode这个属性模式

myLabel.numberOfLines = 1;

textAlignment是设置label的对齐方式是一个枚举

默认是左对齐

NSTextAlignmentLeft=0 左对齐

NSTextAlignmentCenter=1
居中

NSTextAlignmentRight=2
右对齐

NSTextAlignmentJustified=3
左右两边都对齐 一个段落的最后一行是natural-aligned

NSTextAlignmentNatural=4
显示脚本的默认对齐方式

myLabel.textAlignment = NSTextAlignmentCenter;

枚举类型
默认是NSLineBreakByTruncatingTail

NSLineBreakByWordWrapping = 0,
按着一个单词来显示 不会被剪辑剩余的不会被显示

NSLineBreakByCharWrapping,
按着一个字体来显示 不会被剪辑剩余的不会被显示

NSLineBreakByClipping,
把能显示的全显示完 剩下的直接不显示可能有的字显示一半就被剪辑

NSLineBreakByTruncatingHead,
在那一行显示不全的话
那一行 就以 ...abcd模式来显示

NSLineBreakByTruncatingTail,
在那一行显示不全的话
那一行 就以 abcd...模式来显示

NSLineBreakByTruncatingMiddle 在那一行显示不全的话那一行
就以 ab...cd模式来显示

myLabel.lineBreakMode = NSLineBreakByTruncatingTail;

对于attributedText这个属性
可以改变label的一些属性比如font,textColor

关于attributedText,看更多的信息请点这里

不用这个属性的话 不要设置为nil

若为nil的话 他会重新设置你的font text等 这时你会看到你的label没有文字了

myLabel.attributedText = nil;

是不是高亮状态 默认是no

myLabel.highlighted = YES;

设置高亮状态下的颜色默认是nil

myLabel.highlightedTextColor = [UIColor redColor];

设置是否可以和用户直接交互 一般添加手势的时候会把这个打开

默认是不可以交互的

myLabel.userInteractionEnabled = YES;

默认是yes 若改成no字体的颜色会变暗

添加手势之后 把这个属性改为no这个手势依然可以被触发

不知道这个属性有什么用处 难道是单单的改变颜色

myLabel.enabled=YES;

这个属性当文本宽度小于控件宽度的时候 这个属性没做什么事情

当文本宽度大于控件宽度的时候 所有的文字会自适应这个控件的宽度,改变了字体的大小

myLabel.adjustsFontSizeToFitWidth = YES;

这个属性只有当adjustsFontSizeToFitWidth=yes的时候而且numberOfLines是1的时候才起作用

若是UIBaselineAdjustmentAlignBaselines 的话
变小之后的字体和以前的字体
和label的y值的距离是不变的

若是UIBaselineAdjustmentAlignCenters的话
变小之后的字体和以前字体的中间center.y是不变的

若是UIBaselineAdjustmentNone的话
变小之后的字体和以前的字体距离label底部的距离是不变的

UIBaselineAdjustmentAlignBaselines = 0,当缩小文本位置基于最初的基线的时候才用到这个属性

UIBaselineAdjustmentAlignCenters,

UIBaselineAdjustmentNone,

myLabel.baselineAdjustment =UIBaselineAdjustmentAlignBaselines;

默认是0若是0则当前字体大小被识别为最小的字体

用这个属性来指定最小的乘数 这个乘数是当前的字体来计算出可以一个可以接受的字体来展示label

若是1的话表明这个字体不可以被放大和缩小了

myLabel.minimumScaleFactor = 0;

这个属性理解欠缺求大神指点官方文档没看到对这个的解释

这个属性是iOS9 才出现的

myLabel.allowsDefaultTighteningForTruncation = YES;

这个属性是用来设置多行label的最大宽度的

当自动布局的时候约束这个label的时候这个属性会起作用

在自动布局添加约束中,若文本超过了指定的最大宽度的时候
文本会另起一行 从而增加了label的高度

myLabel.preferredMaxLayoutWidth = 20;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: