我在摆弄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
到目前为止,一切都很好,但是我看到
theView
中有一个负偏移,最好在左下角显示:我的目标是,以编程方式创建的视图(较深的灰色视图)应将自身恰好定位在模板视图(白色的视图)上方。我已经遍历了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