居中背景图像和自动布局Fiasco

时间:2012-11-30 15:06:30

标签: ios xcode

我有一个背景图片,其宽度为768像素,如下所示。我有几个较小的图像需要放在它们所在的位置。例如,蓝色的需要定位在40,120。

enter image description here

当用户将设备方向更改为横向时,将出现问题。背景图像位于中心(编辑器> Align> Container中的水平中心)。因此背景图像在中心水平布局。系统自动将蓝色图像的x坐标设置为40,而不是距背景图像边缘40个像素。所以小家伙放错了地方。 (预期的职位以白色显示。)

enter image description here

那么我能做些什么才能将小家伙与背景图像的位置相关联呢?我做了很多事情,比如选择背景图片和相应的小家伙,然后选择编辑器> Pin>水平间距。什么都行不通。在这种情况下,无论设备方向如何,是否可以保留相对位置?或者我应该没有“自动布局”?第二个最佳选择不是定位背景图片。但是当用户将方向更改为横向时,应用程序看起来不会很好。

2 个答案:

答案 0 :(得分:1)

将小家伙嵌入背景图片(将所有内容嵌入容器UIView!)

坐标始终相对于外部容器

答案 1 :(得分:0)

我通过将它们放在UIScrollView组中然后将它们作为一个整体移动来获得它,如下所示。

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration {
if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
    uiscrollview1.Frame=CGRectMake(uiscrollview1.frame.origin.x, uiscrollview1.frame.origin.y, uiscrollview1.frame.size.width, uiscrollview1.frame.size.height);
}
else
{
    uiscrollview1.Frame=CGRectMake(uiscrollview1.frame.origin.x+128, uiscrollview1.frame.origin.y, uiscrollview1.frame.size.width, uiscrollview1.frame.size.height);
}
}

这是迄今为止最好的结果。