首先创建一个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;