gpt4 book ai didi

swift - 如何快速从高度确定文本的字体大小?

转载 作者:行者123 更新时间:2023-11-30 10:34:22 28 4
gpt4 key购买 nike

我需要向图像添加文本水印。文本的高度随图像的高度而变化。现在我知道图像的高度,并且我知道文本的高度。我如何知道文本的字体大小?简而言之,如何从高度确定文本的字体大小?现在我的解决方案如下。有人有更好的方法吗?谢谢!!!

/// - Parameter height: target height for font
func textFontSize(from height: CGFloat) -> CGFloat {
var fontSize: CGFloat = 30
var textFont = UIFont.systemFont(ofSize: fontSize)

while (textFont.lineHeight < (height * 4 / 5) ||
textFont.lineHeight > height){

//decrease font size
if textFont.lineHeight > height {
fontSize = fontSize - 0.5

// increase
}else if textFont.lineHeight < (height * 4 / 5) {
fontSize = fontSize + 0.5
}

textFont = UIFont.systemFont(ofSize: fontSize)
}
return fontSize
}

最佳答案

正确的方法已经测试

/// - Parameter height: target height for font
func textFontSize(from height: CGFloat) -> CGFloat {
let defaultSize: CGFloat = 30
let defaultFont = UIFont.systemFont(ofSize: defaultSize)
let boundSize = self.size(withAttributes: [NSAttributedString.Key.font : defaultFont])

let pointsPerPixel = defaultFont.pointSize / boundSize.height
let desiredPointSize = height * pointsPerPixel
return desiredPointSize
}

关于swift - 如何快速从高度确定文本的字体大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58390863/

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