Ios 键入长文本时,textview会按输入比例追加空格
我正在获取文本视图文本(我正在书写的文本视图)的大小,并将其设置为显示文本视图的大小。但是如果我写更长的文本,当我发布它时,它会在我的文本视图中显示更长的空白。我通过测量我正在写的文本的content.height,为文本视图的大小编写了代码Ios 键入长文本时,textview会按输入比例追加空格,ios,swift,Ios,Swift,我正在获取文本视图文本(我正在书写的文本视图)的大小,并将其设置为显示文本视图的大小。但是如果我写更长的文本,当我发布它时,它会在我的文本视图中显示更长的空白。我通过测量我正在写的文本的content.height,为文本视图的大小编写了代码 } else if identifier == "save" { print("Save button tapped") if textViewWrite.text == "" { print("t
} else if identifier == "save" {
print("Save button tapped")
if textViewWrite.text == "" {
print("text empty")
}
else{
print("\(textViewWrite.contentSize.height)")
let size: CGSize = textViewWrite.sizeThatFits(CGSize.init(width: textViewWrite.frame.size.width, height: CGFloat.greatestFiniteMagnitude))
let insets: UIEdgeInsets = textViewWrite.textContainerInset;
let relevantHeight = size.height - insets.top - insets.bottom;
let text = Post(texts: "String", textHeight: relevantHeight, textWidth: textViewWrite.contentSize.width)
PostService.create(text: self.textViewWrite.text!, height: Int(textViewWrite.contentSize.height), width: Int(view.frame.width) )
print("\(textViewWrite.contentSize.height)")
// 1
let HomeViewController = segue.destination as! HomeViewController
// 2
HomeViewController.posts.append(text)
}
textViewWrite.text = ""
}
}
我以前见过您使用的方法,但是出于您的目的,我认为最好使用。在我看来,这要容易得多 您要做的是使用布局约束约束接收文本视图的高度特性 在接收文本视图中,尝试设置布局约束,如
let captionContainer: UIView = {
let c = UIView()
c.translatesAutoresizingMaskIntoConstraints = false
c.backgroundColor = UIColor.lightGray
c.layer.cornerRadius = 6
return c
}()
let caption: UITextView = {
let c = UITextView()
c.textAlignment = .left
c.font = .systemFont(ofSize: 14)
c.isScrollEnabled = false
c.translatesAutoresizingMaskIntoConstraints = false
return c
}()
func setupCaption() {
view.addSubview(captionContainer)
view.addSubview(caption)
//Container Constratins
captionContainer.widthAnchor.constraint(equalToConstant: 250).isActive = true
captionContainer.heightAnchor.constraint(equalTo: caption.heightAnchor, multiplier: 1).isActive = true
captionContainer.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
captionContainer.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
//Caption Constraints
caption.widthAnchor.constraint(equalToConstant: 250).isActive = true
caption.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
caption.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
// This constraint controls the maximum height the caption can have.
NSLayoutConstraint(item: caption, attribute: .height, relatedBy: .lessThanOrEqual, toItem: view, attribute: .height, multiplier: 0.25, constant: 0).isActive = true
}
然后将标题文本设置为用于用户输入的文本字段或文本视图
祝你好运。我以前见过你使用的方法,但是出于你的目的,我认为最好使用。在我看来,这要容易得多 您要做的是使用布局约束约束接收文本视图的高度特性 在接收文本视图中,尝试设置布局约束,如
let captionContainer: UIView = {
let c = UIView()
c.translatesAutoresizingMaskIntoConstraints = false
c.backgroundColor = UIColor.lightGray
c.layer.cornerRadius = 6
return c
}()
let caption: UITextView = {
let c = UITextView()
c.textAlignment = .left
c.font = .systemFont(ofSize: 14)
c.isScrollEnabled = false
c.translatesAutoresizingMaskIntoConstraints = false
return c
}()
func setupCaption() {
view.addSubview(captionContainer)
view.addSubview(caption)
//Container Constratins
captionContainer.widthAnchor.constraint(equalToConstant: 250).isActive = true
captionContainer.heightAnchor.constraint(equalTo: caption.heightAnchor, multiplier: 1).isActive = true
captionContainer.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
captionContainer.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
//Caption Constraints
caption.widthAnchor.constraint(equalToConstant: 250).isActive = true
caption.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
caption.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
// This constraint controls the maximum height the caption can have.
NSLayoutConstraint(item: caption, attribute: .height, relatedBy: .lessThanOrEqual, toItem: view, attribute: .height, multiplier: 0.25, constant: 0).isActive = true
}
然后将标题文本设置为用于用户输入的文本字段或文本视图
祝你好运。这个问题听起来像是一个包含大量文本的绕口令。为了说明这一点,我有两个文本视图。1=我正在写文章的文本视图(文本视图)。2=我正在显示帖子的文本视图(textViewWrite)。现在,如果我在第一个文本视图中写更长的文本,它会发布帖子,但在第二个文本视图中也会发布更长的空白textV@MahdiaDaqiq你能提供一张这个的屏幕截图吗?@Stefan我在顶部添加了一张图片,你可以点击该行的空白处查看图片好的,如果我错了,请纠正我。您需要一个自调整大小的文本视图,该视图根据从另一个文本视图获取的文本调整大小。这是正确的吗?这个问题听起来像是一个包含大量文本的绕口令。为了说明这一点,我有两个文本视图。1=我正在写文章的文本视图(文本视图)。2=我正在显示帖子的文本视图(textViewWrite)。现在,如果我在第一个文本视图中写更长的文本,它会发布帖子,但在第二个文本视图中也会发布更长的空白textV@MahdiaDaqiq你能提供一张这个的屏幕截图吗?@Stefan我在顶部添加了一张图片,你可以点击该行的空白处查看图片好的,如果我错了,请纠正我。您需要一个自调整大小的文本视图,该视图根据从另一个文本视图获取的文本调整大小。这是正确的吗?