NSStringDrawingContext的actualScaleFactor何时更改?
文件说:
"如果在minimumScaleFactor属性中指定了自定义值,则在绘制完成时,此属性包含用于绘制字符串的实际比例因子值."
我的代码:
myButton.titleLabel!.font = UIFont(name: "AmericanTypewriter-Bold", size: 40) myButton.titleLabel?.adjustsFontSizeToFitWidth = true myButton.setTitle("\(textString)", forState: .Normal) let attributes = [NSFontAttributeName : myButton.titleLabel!.font] let attributedString = NSMutableAttributedString(string:textString, attributes:attributes) let context = NSStringDrawingContext() context.minimumScaleFactor = myButton.titleLabel!.minimumScaleFactor print("context: \(context.actualScaleFactor)") let resultingRect = attributedString.boundingRectWithSize(myButton.titleLabel!.bounds.size, options: .UsesLineFragmentOrigin, context: context) print("actual context after drawing: \(context.actualScaleFactor)") //want to get the font size after adjustsFontSizeToFitWidth has done its magic: //let actualFontSize = myButton.titleLabel!.font.pointSize * context.actualScaleFactor
适合不缩小的文本的控制台日志和调整为适合标签宽度的较长文本都是相同的:
context: 0.0 actual context after drawing: 1.0
知道在文本大小适合标签后,从上下文中获取真正的scaleFactor的步骤是什么?