Swift 学习笔记,UILabel自适应高度宽度

来源:互联网 发布:步进电机加减速算法 编辑:程序博客网 时间:2024/05/18 00:10

下面是我用swift写的UILabel自适应希望对大家有所帮助,如果有什么不对的地方也希望大家多多指点。。。不废话 直接上代码

var label:UILabel!//定义变量

下面是对UILabel的初始化

label = UILabel(frame:CGRect(origin: CGPointMake(0,0), size: CGSizeMake(0, 0)))label.textColor = UIColor.whiteColor()label.backgroundColor = UIColor.redColor()label.text = "UILabel自适应宽高"label.numberOfLines = 0label.textAlignment = NSTextAlignment.Centerlabel.adjustsFontSizeToFitWidth = truelabel.font = UIFont.systemFontOfSize(20)

下面是调用方法并设置label的frame

var text:String = self.label.text!//获取label的textvar attributes = [NSFontAttributeName: self.label.font!]//计算label的字体label.frame = labelSize(text, attributes: attributes)//调用计算label宽高的方法label.center = self.view.centerself.view.addSubview(self.label)//添加到self.view

下面是具体的方法

/**计算label的宽度和高度:param: text       label的text的值:param: attributes label设置的字体:returns: 返回计算后label的CGRece*/func labelSize(text:String ,attributes : [NSObject : AnyObject]) -> CGRect{    var size = CGRect();    var size2 = CGSize(width: 100, height: 0);//设置label的最大宽度    size = text.boundingRectWithSize(size2, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: attributes , context: nil);    return size}

这里写图片描述
测试环境iOS8.3,该方法支持iOS7(包含iOS7)之后的版本,由于身边没有7的设备只能用模拟器进行测试

0 0
原创粉丝点击