使用 Transform 缩小 UITextView

Scale down UITextView with Transform

我正在尝试在带有约束的情节提要中使用自定义字体缩小 UITextView。我可以轻松地为边界和字体大小设置动画。然而,由于它是一种自定义字体,字体变化在较大尺寸时变得非常不稳定。我认为这可以通过更改 UITextViewtransform 来完成。但是,这似乎不起作用。文本视图的高度是自动调整大小的,但宽度使用固定的常量(与字体 size/transform 一起动画)。这将控制文本视图换行的位置。

我已经尝试了以下所有建议的解决方案,但均未成功。要么视图保持边界但分辨率降低。或者边界减小,但比出现的字体大小更快导致裁剪。

Scaling UITextView using contentScaleFactor property

我还尝试将文本视图放置在占位符视图中,我还在其中设置了 height/width 约束乘数的动画,以确保其尺寸减小。

通过将我的 UITextView 放在占位符 UIView 中并设置对齐中心 X/Y + 等于 width/height 约束来解决它。

我还对这些视图之间的 multiplier 约束的 multiplier 进行动画处理,使其与当前变换比例相反。这是为了补偿变换的缩放。

textViewWidthConstraint = textViewWidthConstraint.withMultiplier(1/scale)
textViewHeightConstraint = textViewHeightConstraint.withMultiplier(1/scale)
placeholderView.transform = CGAffineTransform(scaleX: scale, y: scale)

其中函数 withMultiplier 是 中用于编辑约束乘数的解决方案的重命名。