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
根据其内容自动配置。
我正在创建一个 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
根据其内容自动配置。