0

我有这样的要求 - 我必须创建一个 UIView 的子类(例如 MyView),其中它将有 4 个子视图(UIImageVeiws,UILabels)排列 2X2。当我创建我的 UIView 子类的对象(MyView 对象)并给出视图中的这 4 个子视图的默认框架应根据我正在传递的超级视图框架进行排列。

如果我调整或重新构建 MyView 对象框架,则 4 个子视图应根据我为其超级视图提供的新框架重新排列(大小、间距、原点)。

我面临实现这一目标的问题,任何人都可以帮助我如何实现这一目标。我的代码对于我的子类应该是通用的。即使我删除了 4 个子视图中的任何一个,其余 3 个视图也应该排列在其整个超级视图中。

谢谢你。

4

1 回答 1

0

您需要实现的方法是-(void)layoutSubviews.

每当您的视图框架发生变化时,以及在其他适当的时间,这将被自动调用。在此方法中,您可以访问父视图的大小并布局您拥有的各种子视图。

如果您需要在特定时间强制布局,例如在更改视图的某些属性后,您可以调用[view setNeedsLayout].

于 2013-04-17T09:51:13.120 回答