我有一个UITextView,可以同时使用捏和旋转手势调整大小。 为了调整它的大小,我在捏手势处理程序函数中调用了函数textViewDidChange(),而发送者状态为.changed类型,并且在增加了文本视图的字体大小之后。
功能如下:
func textViewDidChange(_ textView: UITextView) {
textView.sizeThatFits(CGSize(width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude))
let newSize = textView.sizeThatFits(CGSize(width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude))
var newFrame = textView.bounds
newFrame.size = CGSize(width: newSize.width, height: newSize.height)
textView.bounds = newFrame
}
问题是,当我以大于45度的角度旋转文本视图时,文本视图的文本被裁剪。通过使用Debug View层次结构,我注意到Text View的UITextContainerView的宽度小于其Superview的宽度。
Debug View Hierarchy screen红色矩形是“文本视图”,突出显示的一个是其UITextContainerView。
文本视图的大小正确,但UITextContainerView的大小不正确。 我不明白为什么会这样,有人可以帮助我吗?
[有一个指向YouTube视频的链接,但该链接已被删除,因此该链接已删除。]
答案 0 :(得分:1)
在textView上禁用滚动。 这会根据contentSize自动增加textView的高度。
textView.isScrollEnabled = false
答案 1 :(得分:0)
在我的情况下,当我在另一个视图隐藏后更新textview的高度约束时,会发生这种情况。我用
self.viewSearchResults.isHidden = true
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
self.constraintTextViewsHeight.constant = 100
}
问题已解决。