2014-10-03 63 views
0

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

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

为了尝试和解决这个问题,我把自动布局,在我的视图和UIImage中,除了限制添加到我的UIImage与trailing,领先,顶部,底部空间到我的超级查看,但没有奏效。

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

EDIT

这是在图像中iphone 4上运行,4S:

enter image description here

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

enter image description here

为什么在顶部和底部的黑色空间?我该如何解决这个问题?并把所有设备的图像全屏?

+0

是的,可以预期,因为你正在为你的imageView添加自动布局,取决于她的父母(.xib)。为什么不只是添加你的imageView你需要添加它,而不需要创建额外的.xib文件? – EridB 2014-10-03 15:37:31

+0

我建议你使用尺寸类与故事板。凭借紧凑的宽度和高度,您可以为所有iPhone设置imageView。 – gabbler 2014-10-03 15:58:00

+0

@CarouselMin多数民众赞成在这个问题上,我想在没有故事板的xib文件中使用这个... – user3781174 2014-10-03 16:04:07

回答

0

您需要设置约束条件。

我建议你升级到Xcode 6,看看新的尺寸类系统。

随着规模类,你只需要处理4种情况: 其所有解释在这里:http://carpeaqua.com/2014/06/14/thinking-in-terms-of-ios-8-size-classes/

关于限制看这个(自动版式/自适应UI): http://www.youtube.com/watch?v=p5wD8dvSDbM

如果你不这样做使用自动布局,你会有一些批量在你的代码,因为你将需要手动设置这样的UIView的尺寸(如果方向改变,你将需要重新调整)

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