将UIView添加到另一个是否安全,以便子视图的框架比父框架大得多

时间:2012-04-06 15:05:54

标签: iphone ios uiview

我想将UIView添加到另一个UIView,以便子视图覆盖其所有父视图。

最初我做了:

UIView * childVU;
childVU = [[UIView alloc] initWithFrame:parentVU.frame];

当我将childVU添加到parentVU时,childVU的top低于parentVU。

所以我做了:

childVU = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 10000.0, 10000.0)];

它在模拟器上运行正常,但这样做真的很安全吗?

2 个答案:

答案 0 :(得分:1)

是的,没关系。在显示内容之前,请确保您的父视图已禁用clipToBounds。这也是一个巨大的视图大小,在旧设备上将不受支持。如果您实际使用的是此尺寸的内容,则应将其放在UIScrollViewCATiledLayer中。

答案 1 :(得分:1)

您在第一个代码的正确轨道上。 除了您应该使用bounds而不是frame,因为框架是相对于父级的。

UIView * childVU;
childVU = [[UIView alloc] initWithFrame:parentVU.bounds];

虽然将子视图设置为大可行,但这不是正确的方法,但如果视图上clipsToBounds设置为YESmasksToBounds设置为{{1}它将nog绘制的子视图大于它自己的大小。