我有一个类似于邮件应用程序的视图。我有一个滚动视图和许多其他子视图。当用户单击任何文本视图时,它会展开以显示其中的文本。例如邮件中的“收件人”字段。我想调整其他子视图的大小,使其从扩展区域下方开始。我怎样才能做到这一点。
我通过 IB 创建了视图,并将其标记为灵活的上边距以促进这一点。但是什么都不会自动发生,因此我想知道是否需要调用 sizethatFits/setneedsLayout。
当子视图调整大小时,调用[[self superview] setNeedsLayout]
. 在您的超级视图中,执行-layoutSubviews
实际布局。你必须自己计算一切。固定/灵活边距与调整超级视图的大小有关,而不是与对等视图有关。默认值-layoutSubviews
什么都不做;它只是在适当的时候被调用。
如果您需要强制布局在特定点发生,那么您可以调用-layoutIfNeeded
您自己或您的超级视图。阅读有关此方法如何工作的文档。不过,一般来说,您不需要调用它。如果你只使用它,它通常会在适当的时候被调用-setNeedsLayout
。