您的位置:首页 > 移动开发 > Swift

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

2015-07-02 14:05 405 查看
下面是我用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 = 0
label.textAlignment = NSTextAlignment.Center
label.adjustsFontSizeToFitWidth = true
label.font = UIFont.systemFontOfSize(20)


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

var text:String = self.label.text!//获取label的text
var attributes = [NSFontAttributeName: self.label.font!]//计算label的字体
label.frame = labelSize(text, attributes: attributes)//调用计算label宽高的方法
label.center = self.view.center
self.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的设备只能用模拟器进行测试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  swift uilabel