UILabel的基本属性及方法

UILabel的基本属性:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 40)];
label.text = kString;
label.textColor = [UIColor blackColor];
label.backgroundColor = [UIColor lightGrayColor];
label.font = [UIFont systemFontOfSize:12];
label.textAlignment = NSTextAlignmentLeft;
label.numberOfLines = 0;
[self.view addSubview:label];

UILabel添加阴影:

label.shadowColor = [UIColor redColor];
label.shadowOffset = CGSizeMake(1, 1);

UILabel设置高亮:

label.highlighted = YES;
label.highlightedTextColor = [UIColor redColor];

超出label边界的截取方式:

//UILineBreakModeWordWrap = 0,    以空格为边界,保留整个单词          
//UILineBreakModeCharacterWrap,   保留整个字符          
//UILineBreakModeClip,            到边界为止          
//UILineBreakModeHeadTruncation,  省略开始,以……代替        
//UILineBreakModeTailTruncation,  省略结尾,以……代替       
//UILineBreakModeMiddleTruncation,省略中间,以……代替,多行时作用于最后一行 
label.lineBreakMode = UILineBreakModeTailTruncation;


文本文字自适应大小:

//当adjustsFontSizeToFitWidth=YES时候,如果文本font要缩小时
//baselineAdjustment这个值控制文本的基线位置,只有文本行数为1是有效
label1.adjustsFontSizeToFitWidth = YES;
label1.baselineAdjustment = UIBaselineAdjustmentAlignCenters;
//UIBaselineAdjustmentAlignBaselines = 0, 默认值文本最上端于label中线对齐
//UIBaselineAdjustmentAlignCenters,//文本中线于label中线对齐
//UIBaselineAdjustmentNone,//文本最低端与label中线对齐

minimumScaleFactor:

1、0<minimumScaleFactor<1时才能达到效果。(字体10,想要最小字体5,设置0.5即可)
2、另外要设置adjustsFontSizeToFitWidth=YES.
3、还有需要UIlabel的行数是1的时候才有用,多行的label是不行的

这个属性是用来设置多行label的最大宽度的
当自动布局的时候约束这个label的时候这个属性会起作用
在自动布局添加约束中,若文本超过了指定的最大宽度的时候 文本会另起一行 从而增加了label的高度
myLabel.preferredMaxLayoutWidth = 20;

设置是否可以和用户直接交互 一般添加手势的时候会把这个打开
默认是不可以交互的
myLabel.userInteractionEnabled = YES;


默认是yes 若改成no字体的颜色会变暗
添加手势之后 把这个属性改为no这个手势依然可以被触发
不知道这个属性有什么用处 难道是单单的改变颜色(另说:文本是否可变)
myLabel.enabled=YES;

封装的计算自适应文本尺寸大小的方法:

- (CGSize)sizeWithFont:(UIFont *)font maxSize:(CGSize)maxSize
{
    NSDictionary *attrs = @{NSFontAttributeName : font};
    return [self boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
}

设置Label的倾斜度:

label.transform = CGAffineTransformMakeRotation(-0.2);

以下方法暂不明:

allowsDefaultTighteningForTruncation NS_AVAILABLE_IOS(9_0)  
     这个属性是用来设置多行label的最大宽度的  
     当自动布局的时候约束这个label的时候这个属性会起作用  
     在自动布局添加约束中,若文本超过了指定的最大宽度的时候 文本会另起一行 从而增加了label的高度 

UILabel有两个接口是专门用来重写,以此来自定义自己的label,如下:
Drawing and Positioning Overrides
– textRectForBounds:limitedToNumberOfLines:
– drawTextInRect:
上面这两个方法不是用来调用的,只适合被UILabel子类重写

– textRectForBounds:limitedToNumberOfLines:
用来改变label里面文字展示窗口的大小,你可以自己根据文字的多少,来计算窗口的大小

– drawTextInRect:
在绘图环境实现文字的绘制,这个方法里面里面已经配置好了绘图环境,使用方式如下:
1.直接获得当前绘图上下文,
2.接着更改绘图环境设置
3.在就是调用super方法来绘制即可



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值