Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 何时adjustsFontSizeToFitWidth或boundingRectWithSize更改context.actualScaleFactor?_Ios_Swift_Uilabel_Font Size_Drawingcontext - Fatal编程技术网

Ios 何时adjustsFontSizeToFitWidth或boundingRectWithSize更改context.actualScaleFactor?

Ios 何时adjustsFontSizeToFitWidth或boundingRectWithSize更改context.actualScaleFactor?,ios,swift,uilabel,font-size,drawingcontext,Ios,Swift,Uilabel,Font Size,Drawingcontext,NSStringDrawingContext的实际比例因子何时更改 如果在minimumScaleFactor属性中指定了自定义值,则绘图完成后,此属性包含用于绘制字符串的实际比例因子值 我的代码: myButton.titleLabel!.font = UIFont(name: "AmericanTypewriter-Bold", size: 40) myButton.titleLabel?.adjustsFontSizeToFitWidth = true myButton.setTitle

NSStringDrawingContext的实际比例因子何时更改

如果在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的步骤吗?

在viewDidAppear中执行此操作。。。这对我来说很有效

和@RanLearns一样的问题


在添加
myButton.titleLabel!之后!。minimumScaleFactor=0.1
对我来说很有效

谢谢你翻译成swift。这对我来说很好。我有一个UILabel,实际字体大小为70pt,最小比例因子为0.1,“adjustsToFit”设置为true。在ViewDidDisplay之后执行代码时,我的控制台输出显示:“上下文:0.0绘图后的实际上下文:0.36 adjustedFontSize:14.4”。事实上,当我将此adjustedFontSize应用于标签的字体时(在将“AdjustesToFit”设置为false后),更改文本不会更改字体大小。这个答案很可能对您有所帮助