我有自定义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
}
答案 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;
或通过界面构建器。