我有一个应用程序,我想在iphone和ipad上运行。我正在使用xib文件和自动布局。布局非常适合所有iphone模拟器,但不适用于ipad。我有一个覆盖整个屏幕的UIImageView,我希望它完全覆盖iphone和ipad的所有屏幕。所以我设置了以下约束:
其中new_BG.png是后台UIImageView。
但是当我在ipad模拟器上运行应用程序时,图像只覆盖屏幕的一部分。这是一个屏幕截图:
还有一件事。我尝试在代码中设置图像视图的框架,使其等于屏幕大小的高度和宽度,如下所示:
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
new_BG.frame = CGRectMake(0, 0, screenWidth, screenHeight);
但是在ipad上运行时它仍然只覆盖屏幕的左上角。然后我将宽度和高度更改为100,并且在ipad上运行时仍然没有变化。
答案 0 :(得分:0)
您的约束集是多余的 - 您可以用单一关系替换.centerX和.centerY约束: new_BG.png.bottom - Superview.Bottom
如果将“模式”属性设置为“左上角”,UIImageView可能会以这种方式显示其UIImage。
由于您的UI元素布局错误,我认为问题不仅限于UIImageView(如果只有您的图片包含自身描绘的UI元素)
答案 1 :(得分:0)
不要给出任何中心约束,例如中心x或中心y。只需给leading,trailing,bottom and top
。这将覆盖iphone和ipad的全屏。
我还有uiview使用的自定义导航栏。所以给它约束 - leading,trailing,top and fix height