我想将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)];
它在模拟器上运行正常,但这样做真的很安全吗?
答案 0 :(得分:1)
是的,没关系。在显示内容之前,请确保您的父视图已禁用clipToBounds
。这也是一个巨大的视图大小,在旧设备上将不受支持。如果您实际使用的是此尺寸的内容,则应将其放在UIScrollView
或CATiledLayer
中。
答案 1 :(得分:1)
您在第一个代码的正确轨道上。
除了您应该使用bounds
而不是frame
,因为框架是相对于父级的。
UIView * childVU;
childVU = [[UIView alloc] initWithFrame:parentVU.bounds];
虽然将子视图设置为大可行,但这不是正确的方法,但如果视图上clipsToBounds
设置为YES
或masksToBounds
设置为{{1}它将nog绘制的子视图大于它自己的大小。