Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift-文本视图输入时的高度和宽度更改_Ios_Swift_Xcode_Uitextview - Fatal编程技术网

Ios Swift-文本视图输入时的高度和宽度更改

Ios Swift-文本视图输入时的高度和宽度更改,ios,swift,xcode,uitextview,Ios,Swift,Xcode,Uitextview,我想在键入时调整textview的大小,但使用这些代码我没有更改宽度。每次我得到的文本视图大小为200。错在哪里?请帮帮我 提前谢谢 let textViewX = UITextView(frame: CGRect(x: self.view.frame.width / 2 - 100, y: self.view.frame.height / 2 - 25, width: 200, height: 50)) textViewX.isScrollEnabled = false textViewX.c

我想在键入时调整textview的大小,但使用这些代码我没有更改宽度。每次我得到的文本视图大小为200。错在哪里?请帮帮我

提前谢谢

let textViewX = UITextView(frame: CGRect(x: self.view.frame.width / 2 - 100, y: self.view.frame.height / 2 - 25, width: 200, height: 50))
textViewX.isScrollEnabled = false
textViewX.clipsToBounds = false
textViewX.delegate = self
textViewX.font = UIFont.systemFont(ofSize: 25)
self.view.addSubview(textViewX)


func textViewDidChange(_ textView: UITextView) {
    let fixedWidth = textView.frame.size.width
    let newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude))
    textView.frame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height)
}

您的问题是您使用sizeThatFits:方法告诉newSize它不能比fixedWidth宽。如果更改代码以允许更大的宽度,则textView将水平增长:

let fixedHeight = textView.frame.size.height
let newSize = textView.sizeThatFits(CGSize(width: CGFloat.greatestFiniteMagnitude, height: fixedHeight))
textView.frame.size = newSize
这允许textView的框架仅水平增长。要同时允许这两种情况,您可以尝试以下方法:

let maxWidth = UIScreen.main.bounds.width - 20
let maxHeight = UIScreen.main.bounds.height - 20
let newSize = textView.sizeThatFits(CGSize(width: maxWidth, height: maxHeight))
textView.frame.size = newSize
textView.center = view.center

这允许框架垂直和水平增长,使textView在其父视图中居中,并将textView的大小限制为屏幕大小,四周有一个20磅的边框。

对我来说很有用。我将上述代码粘贴到一个新项目中。将第一位添加到我的viewDidLoad中。符合TextViewDelegate。框架正在更改。它可以工作,但只更改textview高度。我想在打字时设置宽度,但它没有改变。你的固定宽度变量没有阻止宽度增长吗?我能做什么?我不在电脑旁。今天晚些时候我会试着回答。