textView 高度等于没有 viewDidLayoutSubviews 的内容大小

textView height equal to content size without viewDidLayoutSubviews

我正在创建一个 viewController,其中包含 2 个文本视图、一个标题和一个全文。目前,我在界面生成器中创建了 2 个文本视图,它们彼此下方放置,然后创建以下代码以将高度更改为等于内容。然而,问题是它似乎被延迟了,这给用户带来了糟糕的体验。延迟我的意思是它需要 0.5 或 1 秒才能调整大小?这是我的代码:

override func viewDidLayoutSubviews() {

    super.viewDidLayoutSubviews()

    setHeightToContent(self.titleText!)
    setHeightToContent(self.fullText!)

    scrollView?.contentSize = CGSizeMake(self.view.frame.width, self.fullText!.frame.origin.y + self.fullText!.frame.height)
    println(self.fullText!.frame.origin.y + self.fullText!.frame.height)



}


func setHeightToContent(theTextView: UITextView) {

    let contentSize = theTextView.sizeThatFits(theTextView.bounds.size)
    var frame = theTextView.frame
    frame.size.height = contentSize.height
    theTextView.frame = frame

    var aspectRatioTextViewConstraint = NSLayoutConstraint(item: theTextView, attribute: .Height, relatedBy: .Equal, toItem: theTextView, attribute: .Width, multiplier: theTextView.bounds.height/theTextView.bounds.width, constant: 1)
    theTextView.addConstraint(aspectRatioTextViewConstraint)
}

让每个文本视图根据自己的内容自动调整大小,并使用约束,以便滚动视图的 contentSize 根据其内容自动配置。