Ios 创建一个UIView子类,根据其框架自动排列其子视图?
我有这样的要求-我必须创建UIView的子类(例如MyView),其中有4个子视图(UIImageVews,UILabels),按2X2的位置排列。当我创建UIView子类的对象(MyView对象)时并给出一个默认框架,视图中的4个子视图应根据我经过的超级视图框架进行排列 如果我调整或重新构造我的视图对象框架,则4个子视图将根据我为其超级视图提供的新框架重新排列(大小、间距、原点) 我面临着实现这一目标的问题,谁能帮助我实现这一目标。对于我的子类,我的代码应该是泛型的。即使我删除了4个子视图中的任何一个子视图,其余3个视图也应该在其整个超级视图中进行排列Ios 创建一个UIView子类,根据其框架自动排列其子视图?,ios,objective-c,xcode,gridview,uiview,Ios,Objective C,Xcode,Gridview,Uiview,我有这样的要求-我必须创建UIView的子类(例如MyView),其中有4个子视图(UIImageVews,UILabels),按2X2的位置排列。当我创建UIView子类的对象(MyView对象)时并给出一个默认框架,视图中的4个子视图应根据我经过的超级视图框架进行排列 如果我调整或重新构造我的视图对象框架,则4个子视图将根据我为其超级视图提供的新框架重新排列(大小、间距、原点) 我面临着实现这一目标的问题,谁能帮助我实现这一目标。对于我的子类,我的代码应该是泛型的。即使我删除了4个子视图中的
谢谢。您需要实现的方法是
-(void)layoutSubviews
每当视图的框架发生更改时,以及在其他适当的时间,都会自动调用此函数。在该方法中,您可以访问父视图的大小并布局现有的各种子视图
如果需要在特定时间强制布局,例如在更改视图上的某些属性后,可以调用
[view setNeedsLayout]
相对于superview设置子视图边框。它应该会起作用。顺便问一下,你试过什么?。你有什么特别的问题吗?。