我有一个背景图片,其宽度为768像素,如下所示。我有几个较小的图像需要放在它们所在的位置。例如,蓝色的需要定位在40,120。
当用户将设备方向更改为横向时,将出现问题。背景图像位于中心(编辑器> Align> Container中的水平中心)。因此背景图像在中心水平布局。系统自动将蓝色图像的x坐标设置为40,而不是距背景图像边缘40个像素。所以小家伙放错了地方。 (预期的职位以白色显示。)
那么我能做些什么才能将小家伙与背景图像的位置相关联呢?我做了很多事情,比如选择背景图片和相应的小家伙,然后选择编辑器> Pin>水平间距。什么都行不通。在这种情况下,无论设备方向如何,是否可以保留相对位置?或者我应该没有“自动布局”?第二个最佳选择不是定位背景图片。但是当用户将方向更改为横向时,应用程序看起来不会很好。
答案 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);
}
}
这是迄今为止最好的结果。