Ios 尝试复制UIView的帧以负偏移结束

Ios 尝试复制UIView的帧以负偏移结束,ios,objective-c,uiview,interface-builder,Ios,Objective C,Uiview,Interface Builder,我正在摆弄Interface Builder,遇到了这个令人沮丧的偏移问题: 我创建了一个视图,其中包含一些子视图层次: [parent view] |--> (dummy backround) |--> (a template UIView) 模板在那里,因此设计师应该能够调整规划的更复杂视图的坐标。我想将坐标复制到程序创建的视图中。我就是这么做的: UIView *theView = [[UIView alloc] initWithFrame:pagesB

我正在摆弄Interface Builder,遇到了这个令人沮丧的偏移问题:

我创建了一个视图,其中包含一些子视图层次:

[parent view]
    |--> (dummy backround)
      |--> (a template UIView)
模板在那里,因此设计师应该能够调整规划的更复杂视图的坐标。我想将坐标复制到程序创建的视图中。我就是这么做的:

 UIView *theView = [[UIView alloc] initWithFrame:pagesBounds.frame];
 theView.backgroundColor = [UIColor grayColor];
 [self.view addSubview:theView]; // self.view is the parent view from above
到目前为止还不错,但我在视图的左下角看到了一个负偏移:

我的目标是,通过编程创建的视图(深灰色的视图)应该将自身定位在模板视图(白色视图)的正上方。我已经浏览了IB中的视图,并确保所有视图的“自动调整子视图大小”都处于禁用状态(尽管实际视图会添加到最顶部)


很明显,我还缺少一些东西。建议?

发生偏移的原因是,当您获得“模板UIView”的帧时,它是根据“虚拟背景”的坐标来描述的。要正确定位,您应该执行以下操作:

UIView *theView = [[UIView alloc] initWithFrame:CGRectOffset(pagesBounds.frame, dummyBackground.frame.origin.x, dummyBackground.frame.origin.y)];
theView.backgroundColor = [UIColor grayColor];
[self.view addSubview:theView]; // self.view is the parent view from above

复制帧的视图是否与复制帧的视图具有相同的超级视图?噢!现在我觉得自己很愚蠢。就这样。