IOS - 在绘制之前计算TextView高度是否可行

时间:2016-03-22 07:29:59

标签: ios uitextview

我有自定义PopupView(扩展UIView)。 PopupView仅包含TextView PopupView的宽度为220 现在我希望PopupView高度取决于TextView高度,就像TextView短时弹出窗口会缩短。
我可以在显示TextView之前计算PopUp高度吗?

以下是我所做的PopupView身高取决于TextView身高的原因 - 我展示PoupView的宽度和高度=屏幕宽度和高度
- 之后我在绘制之后计算TextView高度(layoutSubviews
- 然后我更新PopupView高度
=>如果我能在它被绘制之前获得TextView高度会更好

- (void)layoutSubviews{
     [self.textView layoutIfNeeded];
     CGSize sizeThatShouldFitTheContent = [self.contentTextView sizeThatFits:self.textView .frame.size]; // this return correct value of `TextView` height
     // After I get textview height, I update contraint height of PopupView
}

1 个答案:

答案 0 :(得分:1)

这不是你要求的,但它可能是你需要的:只需删除弹出视图的高度约束,并禁用文本视图的滚动(如果启用了滚动,则默认高度为0,否则为文本视图会自动调整大小以适合内容)。这样弹出窗口将包装文本视图。

你需要像这样设置约束:

TextView.Top = Popup.Top
TextView.Left = Popup.Left
TextView.Right = Popup.Right
TextView.Bottom = Popup.Bottom
Popup.Width = <some fixed value> //Yay! Stairs :)

您可以通过编程方式禁用滚动:textView.scrollingEnabled = NO;或通过界面构建​​器。