gpt4 book ai didi

swift - 查找 NSFont 大小以适合特定宽度

转载 作者:行者123 更新时间:2023-12-03 18:07:32 25 4
gpt4 key购买 nike

我正在使用以下代码来查找 NSFont 大小,以使用 while 循环来适应宽度。是否有内置函数可以使计算更轻松?

 let ratio = image.size.width/referenceimagesize!.width
let fcsize=fontsize.width*ratio

if(fontsize.width<fcsize)
{
while(fontsize.width==fcsize)
{

var newheight:CGFloat = 0;
font = NSFont(name: font!.fontName, size: font!.pointSize+1)
var fontAttributes = [NSAttributedStringKey.font: font]

fontsize = (text as NSString).size(withAttributes: fontAttributes)



}
}

最佳答案

不,没有内置函数,但是为什么要使用 while(fontsize.width==fcsize) ?比较不应该是 < ?尝试这样的事情:

func findFontSize(text: String, frameWidth: CGFloat, font: NSFont) -> CGFloat {
var textSize = text.size(withAttributes: [.font: font])
var newPointSize = font.pointSize

while textSize.width < frameWidth {
newPointSize += 1
let newFont = NSFont(name: font.fontName, size: newPointSize)!
textSize = text.size(withAttributes: [.font: newFont])
}

return newPointSize
}

关于swift - 查找 NSFont 大小以适合特定宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61502008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com