swift 根據文字自動計算Label大小
阿新 • • 發佈:2019-02-19
//方法 func textSize(text : String , font : UIFont , maxSize : CGSize) -> CGSize{ return text.boundingRect(with: maxSize, options: [.usesLineFragmentOrigin], attributes: [NSFontAttributeName : font], context: nil).size } let textFont = UIFont.systemFont(ofSize: 14) let textString = "兒子中考考試考差了,被老婆罵了一頓。 我去安慰兒子:“你要努力學習,以後一定要超越爸爸。” 兒子愣了一下,弱弱來了一句:“別的我不敢保證。但是,以後找個比你好的老婆還是很有把握的。” " let textMaxSize = CGSize(width: 240, height: CGFloat(MAXFLOAT)) let textLabelSize = self.textSize(text:textString , font: self.textFont, maxSize: textMaxSize) //獲得根據文字計算的到的Size
OC 寫法
-(CGSize)getLabelSiex:(NSString *)text font:(UIFont *)font maxSize:(CGSize)maxSize{
CGSize size = [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:font} context:nil].size;
return size;
}
ps.label一定設定為自動換行 (labe.numberOfLines = 0)才能生效;