2016-04-04 79 views
1

我遇到了应用程序设计部分的麻烦,我希望有人能帮助我。这里是我的问题的描述:设置图像作为所有屏幕分辨率的背景

我想把一个图像在我的应用程序的所有视图的背景调整所有屏幕分辨率。我的设计师给了我不同大小的背景图片(适用于所有设备,iPhone和iPad)。我没有使用大小类,因为它是一个旧的项目。我有两个故事板:一个用于iPad设备,另一个用于iPhone设备。我创建了一个UIImageView,把它放在我的故事板视图,并添加了良好的约束(棒各方)

我尝试了两种方法来实现我的目标:

  1. 使用切割法,但问题是我在我的 图片上有一些徽标,难以分割。
  2. 使用,Aspect fit,Scale to fill等故事板中的图像的Mode等。这种方法的问题在于,背景对于一个设备来说似乎很好,但对于所有其他设备而言却是失真的。

我在网上搜索了一些东西,但没有成功。有人已经有这个问题,并找到了解决方案?

非常感谢!

+0

为什么不能根据代码中的大小指定每个图像? –

+0

谢谢你的回应Sujith!我想过这个解决方案,但我没有尝试。其实,我想知道是否有可能处理故事板中的图像。你不觉得这是吗? – Vinestro

+0

您是否尝试过使用[资产目录](https://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/AddingImages.html)? – Fonix

回答

0

所有你需要做的是在viewDidLoad中确定屏幕尺寸,并设置不同的图像;如果你的屏幕正在旋转,你可能想要做同样的事情。

+0

感谢您的回复gnasher729!没有办法以故事板的方式做到这一点? – Vinestro

0

我认为你需要使用的UIViewMode财产,

如果Aspect fill那么你的形象将被设置和裁剪按大小,而且取决于使用的Aspect fill你需要使用clipToBoundYES为好,

如果您使用Aspect fit,则图像将显示为其长宽比。

但背景Aspect fill将是最好的clipToBoundYES

+0

感谢您的回复!我试图将我的'UIImageView'模式设置为'Aspect fill'并将'clipToBound'设置为'YES'。根据我的资产目录中的图像大小,它正在处理某些设备分辨率,但是当我切换另一个分辨率时,图像不能覆盖整个屏幕,我会在两侧获得空白区域。 – Vinestro

+0

然后你需要设置图像的最大尺寸。 –

+0

我做过了,我使用的图像大小是1242x2208,在资产目录的图像集中的2x框中设置。我还试图把1x的640x960,2x的750x1334和3x的1242x2208。 – Vinestro

0

如果你想为每个viewcontroller设置相同的背景图像,你可以在你的appdelegate中试试这个,并将你的viewcontroller的背景颜色设置为clearColor,就是这样。我在我的一个应用程序中做了同样的事情。随意问更多的建议...

+1

感谢您的回复!我试过你的解决方案,但我得到了与iPhone 4(图像裁剪)相同的问题。不过谢谢! – Vinestro

+0

多数民众赞成在我知道的问题,但你可以做一些技巧与... .... –

+0

Autolayout不工作在iPhone4,但它是从iPhone4s工作。所以你可以检查你的iPhone是否是iPhone4。如果是iPhone4,则将债券属性设置为您的UIImageView。它会工作。 – chaaruu