0

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

最初我是这样做的:

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

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

所以我做了:

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

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

4

2 回答 2

1

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

于 2012-04-06T15:07:41.050 回答
1

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

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

尽管使子视图变大会起作用,但这不是正确的方法,但是如果在视图上设置为或clipsToBounds设置为它,将不会绘制大于其自身大小的子视图。YESmasksToBoundsYES

于 2012-04-06T15:09:11.027 回答