UITextView高度调整

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UITextView高度调整相关的知识,希望对你有一定的参考价值。

我正在尝试创建一个ViewController来保存一些大文本。我使用UILabel,但由于文本可能很长,它将无法正常工作。试图切换到UITextViewbut我有一些问题。

我正在使用ScrollView,因为顶部有一个图像,底部有一个按钮。所以我不在UITextView本身内滚动。我已经禁用了它。

我希望Text根据文本长度自动调整高度。所以它可以滚动图像,按钮等。就像应用程序Instapaper,Medium,Pocket等。

我已经尝试了StackOverflow上的所有代码和解决方案,但它们要么不起作用,要么它们是Objective-C。

故事板结构:视图控制器 - >视图 - > ScrollView - >图像,TextView,按钮

class ViewController: UIViewController {

  @IBOutlet weak var textView: UITextView!
  var theContent = fromClass.text

  override func viewDidLoad() {
    super.viewDidLoad()
    textView.text = theContent
  }
}
答案

几乎没有办法改变UITextView的大小

extension String {

    func bounds(approximated width: CGFloat, approximated height: CGFloat, font: UIFont) -> CGRect {
        let size = CGSize(width: width, height: height)
        let attribs = [NSAttributedStringKey.font: font]

        return NSString(string: self).boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: attribs, context: nil)
    }
}

approximated width =你的UITextView的宽度我认为它将是静态值,你不会改变。

qazxsw poi =你的qazxsw poi的最小高度。

该方法将返回文本输入的框架。取决于它的高度属性,取决于有多大改变了approximated height的大小。

如果它不能满足你,你可以用另一种方式。

UITextView

与上面相同的用法。

另一答案

将视图层次结构调整为以下视图层次结构:

View Controller - > View - > ScrollView - > View1 - > Image,UILabel,Button

1-给出view1左上角 - 右下角的约束,并将中心X与其父视图对齐

2-在View1的顶部添加UITextView并赋予它左上角约束和固定高度约束。

3-添加一个func heightOfString(_ attributes: [NSAttributedKeyString : Any]) -> CGFloat { let size = self.size(withAttributes: attributes) return size.height } 并给它顶部约束图像和右下左约束它的超视图。

使UIImageView行数= 0

内容不应该是可滚动的。

请注意:在您的情况下;你不需要UILabel

如果你想使用UILabel

1-添加一个高度约束到UITextView并连接一个名为:constTextViewHeight的插座

UITextView

UITextView

以上是关于UITextView高度调整的主要内容,如果未能解决你的问题,请参考以下文章

iPad 上的 UIModalPresentationFormSheet。键盘出现时如何调整UITextView的高度

UITextView高度调整

UITextView 高度未在 UITableViewCell 中调整大小

如何使节标题中的 UITextView 将其高度调整为其内容

如何让 UITextView 根据内容动态调整自身大小

iOS UITextView自适应高度UITextContainerView抖动问题