相关疑难解决方法(0)

当-adjustsFontSizeToFitWidth设置为YES时,如何计算UILabel的字体大小?

myLabel.adjustsFontSizeToFitWidth = YES,UILabel将自动调整字体大小,以防文本对于标签太长.例如,如果我的标签仅仅是100像素宽,我的文字太长,以适应当前的字体大小,直到文本适合的标签,它就会减少下来的字体大小.

当字体缩小时,我需要从UILabel获取实际显示的字体大小.例如,假设我的字体大小实际上是20,但UILabel不得不将其缩小到10.当我向UILabel询问字体和字体大小时,我得到的是旧字体大小(20),但不是显示的字体大小(10).

iphone cocoa-touch uikit uilabel

25
推荐指数
1
解决办法
1万
查看次数

如何计算iOS 7中的实际字体点大小(不是边界矩形)?

编辑:链接的"重复"问题仅涉及计算文本矩形.我需要在标签缩放后计算实际字体大小,而不是字符串大小.

现在不推荐使用此方法:

size = [self sizeWithFont:font // 20
              minFontSize:minFontSize // 14
           actualFontSize:&actualFontSize // 16
                 forWidth:maxWidth
            lineBreakMode:self.lineBreakMode];
Run Code Online (Sandbox Code Playgroud)

现在在iOS 7中缩小文本大小以适应时,如何计算UILabel的字体大小?

iphone objective-c ios ios7

10
推荐指数
4
解决办法
9953
查看次数

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

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
Run Code Online (Sandbox Code Playgroud)

适合不缩小的文本的控制台日志和调整为适合标签宽度的较长文本都是相同的:

context: 0.0
actual context after drawing: 1.0
Run Code Online (Sandbox Code Playgroud)

知道在文本大小适合标签后,从上下文中获取真正的scaleFactor的步骤是什么?

font-size uilabel ios drawingcontext swift

6
推荐指数
1
解决办法
1130
查看次数