我有要求 - 我必须创建一个UIView的子类(例如MyView),它将有4个子视图(UIImageVeiws,UILabels)排列2X2就位。当我创建我的UIView子类的对象时(MyView对象)并给出一个默认框架,视图中的4个子视图应根据我传递的超级视图框架进行排列。
如果我调整大小或重新构建MyView对象框架,则根据我给其超级视图的新框架,将4个子视图sholud重新获得(大小,间距,原点)。
我面临着实现这一目标的问题,任何人都可以帮助我实现这一目标。我的代码应该是关于我的子类的通用代码。即使我删除了4个子视图中的任何一个,其余3个视图也应该在其整个超视图中排列。
谢谢。
答案 0 :(得分:0)
您需要实施的方法是-(void)layoutSubviews
。
只要视图的帧发生变化,就会在其他适当的时间自动调用。在此方法中,您可以访问父视图的大小并布置您拥有的各种子视图。
如果您需要在特定时间强制布局,例如在更改视图中的某些属性后,您可以拨打[view setNeedsLayout]
。