当前位置:  开发笔记 > IOS > 正文

什么时候调整.FontSizeToFitWidth或boundingRectWithSize更改context.actualScaleFactor?

如何解决《什么时候调整.FontSizeToFitWidth或boundingRectWithSize更改context.actualScaleFactor?》经验,为你挑选了0个好方法。

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的步骤是什么?

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有