gpt4 book ai didi

ios - 将 UITextView 调整为 Swift 中的内容

转载 作者:行者123 更新时间:2023-11-30 14:12:46 24 4
gpt4 key购买 nike

我在网上看到并尝试了一些解决方案来调整 TextView 的内容,但似乎没有任何效果。我打开了自动布局,禁用了滚动,这是 viewDidLoad 中的代码,我用来尝试动态调整 TextView 的大小。

var frame = aboutText.frame
frame.size.height = aboutText.contentSize.height
aboutText.frame = frame

我也尝试过

aboutText.sizeToFt()
aboutText.layoutIfNeeded()

编辑:也尝试过:

let fixedWidth = aboutText.frame.size.width
aboutText.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max))
let newSize = aboutText.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max))
var newFrame = aboutText.frame
newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height)
aboutText.frame = newFrame

最佳答案

从技术上讲,由于您使用的是自动布局,因此您应该能够使用约束和压缩/拉伸(stretch)优先级来将 TextView 的大小设置为适合其内容。这是 TextView 的自然行为。

但是,如果这失败了,下面的代码应该强制其调整大小以适应其内容:

let size = textView.sizeThatFits(CGSizeMake(width,  CGFloat(FLT_MAX)))
// where width is the width that the text view should be, usually width of parent view - 20
textView.frame = CGRectMake(textView.frame.origin.x, textView.frame.origin.y, size.width, size.height)
// you may have to call view.layoutIfNeeded()

更新 ** UITableView 自动调整 textView 大小

在你的 UITableViewDelegate 中实现这个:

override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}

然后将 TextView 限制在 TableView 单元格的顶部和底部。这样,每个表格 View 单元格都应该调整大小以适应其内容文本。

这个视频应该能够准确解决您的问题,它对我帮助很大: https://developer.apple.com/videos/wwdc/2015/?id=231

关于ios - 将 UITextView 调整为 Swift 中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31570681/

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