创建一个UIView子类,根据其框架自动排列其子视图?

时间:2013-04-17 09:27:21

标签: ios objective-c xcode gridview uiview

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

如果我调整大小或重新构建MyView对象框架,则根据我给其超级视图的新框架,将4个子视图sholud重新获得(大小,间距,原点)。

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

谢谢。

1 个答案:

答案 0 :(得分:0)

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

只要视图的帧发生变化,就会在其他适当的时间自动调用。在此方法中,您可以访问父视图的大小并布置您拥有的各种子视图。

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