gpt4 book ai didi

ios - 如何调整 TextView 高度及其所在容器的大小?

转载 作者:行者123 更新时间:2023-11-28 08:28:51 25 4
gpt4 key购买 nike

我正在尝试制作一个文本消息文本框,使 TextView 更大,UIView(其中包含 TextView )也更大。我正在使用约束。当我达到一定高度时,我希望它滚动并停止增加容器的高度。我已经尝试了所有可能的方法,包括使用这个论坛(How do I size a UITextView to its content?)。

当我输入时出现一个问题,一旦我达到一定高度,它就开始在下面看不见了。

func textViewDidChange(textView: UITextView) {

let fixedWidth = self.chatTextField.frame.size.width
self.chatTextField.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max))
let newSize = self.chatTextField.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max))
var newFrame = self.chatTextField.frame
newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height)
print(textViewAnchorHeight?.constant)
if textView.contentSize.height <= self.chatTextFieldHeightAnchor?.constant {
textView.scrollEnabled = false
self.chatTextField.frame = newFrame


//self.chatTextFieldHeightAnchor?.constant = newSize.height
self.textViewAnchorHeight?.constant = newSize.height
} else {
textView.scrollEnabled = true
self.automaticallyAdjustsScrollViewInsets = true
print("here")
}

如何制作完美的 TextView ?

最佳答案

您可以使用下面的代码来实现动态调整大小。您可能希望根据自己的喜好更改 differenceOfHeight 值。

func textViewDidChange(textView: UITextView) {
var newFrame = textView.frame
var minHeight = 40 // ENTER THE MIN HEIGHT OR THE INITIAL HEIGHT OF THE TEXTVIEW
var maxHeight = 100 // ENTER THE MAX HEIGHT YOU WANT
newFrame.size = textView.sizeThatFits(CGSizeMake(newFrame.size.width, maxHeight))

if newFrame.size.height > minHeight && newFrame.size.height < maxHeight {
let differenceOfHeight = newFrame.size.height - textView.frame.size.height
holderView.frame = CGRectMake(holderView.frame.origin.x, holderView.frame.origin.y - differenceOfHeight, holderView.frame.size.width, newFrame.size.height)
textView.frame = newFrame
}
}

关于ios - 如何调整 TextView 高度及其所在容器的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39313565/

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