写一个方法来继承String
//自动控制文字换行及宽度
extension String {
func textSizeWithFont(font: UIFont, constrainedToSize size:CGSize) -> CGSize {
var textSize:CGSize!
if CGSizeEqualToSize(size, CGSizeZero) {
let attributes = NSDictionary(object: font, forKey: NSFontAttributeName)
textSize = self.sizeWithAttributes(attributes as! [String : AnyObject] as [String : AnyObject])
} else {
let option = NSStringDrawingOptions.UsesLineFragmentOrigin
let attributes = NSDictionary(object: font, forKey: NSFontAttributeName)
let stringRect = self.boundingRectWithSize(size, options: option, attributes: attributes as! [String : AnyObject] as [String : AnyObject], context: nil)
textSize = stringRect.size
}
return textSize
}
}
用法:
let projectText="我是一段字符串,来计算我的高度吧";
let projectSize=sizeWithText(projectText, maxSize: CGSizeMake(150,20), font: UIFont.systemFontOfSize(14));
let comProjectW:CGFloat=projectSize.width;
let comProjectH:CGFloat=projectSize.height;
//记得要在计算的字符串UILable中加上
UIlable.font=UIFont.systemFontOfSize(14);
//显示几行
UIlable.numberOfLines=1;
UIlable.frame = CGRectMake(50, 50, comProjectW, comProjectH);