gpt4 book ai didi

ios - 应用转换并设置新的键入属性后,UITextView 被裁剪

转载 作者:行者123 更新时间:2023-12-01 16:08:09 25 4
gpt4 key购买 nike

我有一个可以缩放和旋转的 UITextView。其文本由用户编辑。文本属性也可以更改,例如文字和背景颜色、字体等

有趣的是,如果我应用缩放变换来缩小 View (例如 0.5),那么它的文本就会被剪裁。如果我设置 view.transformview.layer.transform,行为是相同的。它是由内部 UITextContainerView 引起的,它看起来像是缩放了两次,例如如果 TextView 缩放 0.5 倍,则 UITextContainerView 具有缩小 TextView 的一半大小。 UITextContainerViewframebounds 有相同的值,是收缩 TextView 的大小,看起来是正确的。 UITextContainerView transform 和它的 layer 的 transform 是同一性的。

enter image description here

手动更改 UITextContainerViewframebounds 会自动重置,因此不起作用。此外,clipsToBoundsmasksToBounds 不修复裁剪。

这发生在 iOS 11.4 的模拟器和真实设备中。如果我只删除新输入属性的设置,则 UITextContainerView 会正常运行并且不会剪裁文本。

这是大小写问题,如果我将其删除,那么文本将不再被剪裁:

textView.typingAttributes = updatedTypingAttributes

有人遇到过这个错误吗?我该如何解决这个问题?

最佳答案

通过覆盖我的 UITextView 子类上的 transform 解决了这个问题。不需要父 UIView

override var transform: CGAffineTransform {
didSet {
guard transform != oldValue else { return }

// alternatively, if transform == .identity
if transform.a == 1 {
setNeedsLayout()
layoutIfNeeded()
}
}
}

关于ios - 应用转换并设置新的键入属性后,UITextView 被裁剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51653195/

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