Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 当一个子视图大小更改时,如何调整其他子视图和父视图的大小_Iphone_Xcode_Uiview_Subview - Fatal编程技术网

Iphone 当一个子视图大小更改时,如何调整其他子视图和父视图的大小

Iphone 当一个子视图大小更改时,如何调整其他子视图和父视图的大小,iphone,xcode,uiview,subview,Iphone,Xcode,Uiview,Subview,我有一个类似邮件应用程序的视图。我有一个滚动视图和许多其他子视图。当用户单击任何textview时,它会展开以显示其中的文本。e、 邮件中的“收件人”字段。我希望调整其他子视图的大小,使其从展开区域下方开始。我该怎么做呢 我通过IB创建了视图,并将其标记为灵活的上边距,以便于实现这一点。但是没有自动发生任何事情,因此我想知道是否需要调用sizethatFits/setneedsLayout。当子视图调整大小时,调用[[self superview]setneedsLayout]。在supervi

我有一个类似邮件应用程序的视图。我有一个滚动视图和许多其他子视图。当用户单击任何textview时,它会展开以显示其中的文本。e、 邮件中的“收件人”字段。我希望调整其他子视图的大小,使其从展开区域下方开始。我该怎么做呢


我通过IB创建了视图,并将其标记为灵活的上边距,以便于实现这一点。但是没有自动发生任何事情,因此我想知道是否需要调用sizethatFits/setneedsLayout。

当子视图调整大小时,调用
[[self superview]setneedsLayout]
。在superview中,实现
-layoutSubviews
以进行实际布局。你必须自己计算每件事。固定/灵活的边距与调整superview的大小有关,而与对等视图无关。默认的
-layoutSubviews
完全不起作用;它只是在适当的时候被调用

如果您需要强制布局发生在特定点,那么您可以在自己或superview上调用
-layoutifneed
。阅读有关此方法工作原理的文档。不过,一般来说,你不需要称之为。如果只使用
-setNeedsLayout
,它通常会在适当的时间被调用