为所有设备自动布局UIImage

时间:2014-10-03 15:15:50

标签: ios objective-c iphone uiimageview autolayout

我正在开发各种版本的iPhone应用程序,在我的情况下,我创建了一个文件.xib类型和一个大小为320x480的视图,在这个视图中有一个占据整个视图的UIImage(320x480) )。

当我在iPhone 4或4s屏幕上测试我的应用程序是完美的,但是当我在iphone 5,5s,6,6 plus上测试时,是一个巨大的空白区域,而且图像不像iphone 4那样全屏版本。

为了尝试解决这个问题,我将autolayout放在我的视图和UIImage中,除了约束添加到我的UIImage时,我的超视图具有trailling,leading,top,bottom space但是没有用。

如何解决这个问题并使我的UIImage扩展或减少每个版本的iPhone?

修改

这是在iphone 4,4s中运行的图像:

enter image description here

这是在iphone 5,5s中运行的图像:

enter image description here

为什么顶部和底部的黑色空间?我该怎么解决这个问题?并将图像全屏显示在所有设备上?

1 个答案:

答案 0 :(得分:0)

您需要设置约束。

我建议您升级到Xcode 6并查看新的大小类系统。

使用大小类,您只需要处理4种情况: 这一切都在这里解释:http://carpeaqua.com/2014/06/14/thinking-in-terms-of-ios-8-size-classes/

关于约束,请看这个(AutoLayout / Adaptive UI): http://www.youtube.com/watch?v=p5wD8dvSDbM

如果您不使用自动布局,则代码中会有一些批量,因为您需要手动设置UIView的尺寸(如果方向更改,则需要重新调整此值)< / p>

_background = [[UIView alloc] initWithFrame:CGRectMake(0,0,[UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];