gpt4 book ai didi

ios - 文本在框架中未正确缩放

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:58:19 25 4
gpt4 key购买 nike

我正在制作一个流程图应用程序,但在缩放其中包含文本的形状时遇到了问题。

根据比例值,字符串的相对宽度会发生变化:

比例 6.0:scale 6.0比例 1.0: scale 1.0比例 0.5: scale 0.5

文本区域类具有属性 logFontSize,表示恒定字体大小(在本例中为 12.0)。

缩放函数(zoomVal 是新的缩放比例):

func zoom(zoomVal: CGFloat){
let newSize = self.logFontSize*zoomVal
self.attributes![NSAttributedString.Key.font] = (self.attributes![NSAttributedString.Key.font] as! UIFont).withSize(newSize)
self.attributedString?.setAttributes(self.attributes, range: NSRange(location: 0, length: self.text!.count))
}

我还检查过:比例值与框架矩形(红色)高度和字符串高度(capHeight、lineHeight 等)之间的关系之间没有相关性。

如何缩放文本以使其宽度与其框架宽度之间的关系保持不变?

最佳答案

这是一项提高易读性的功能。大小和填充等文本指标没有简单的线性关系。它们以多种方式调整为各种大小,并以特定于字体的方式进行调整,以使文本易于阅读。

如果你想线性缩放文本,你​​应该渲染它,然后缩放绘制它的图层。对于你的用例,最好的方法可能是用 CAShapeLayers 组合一个静态 CATextLayer,然后应用一个 CAAffineTransform到整个容器 CALayer 来调整它的大小。这将使您平滑缩放,并且性能更高。

关于ios - 文本在框架中未正确缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57442903/

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