在一些视图控制器上,我使用图像作为整个屏幕的背景。我想知道这方面的最佳实践是什么,因为我想支持所有当前可用的iPhones (5-7)。通常对于图像,我会得到@2x和@3x的图像,但这里的情况有点不同?
是否添加4张照片到应用程序,然后询问系统我在哪台设备上运行,然后加载适当的照片?这看起来有点笨拙,也不是很优雅。
发布于 2016-09-27 23:15:13
你真的没有那么多选择。
您可以为不同的设备长宽比捆绑不同的图像,在运行时检查设备的长宽比,并加载正确的图像。这个实现是有缺陷的,因为它没有考虑到未来的设备纵横比。你可以有一个the服务,它返回一个给定纵横比的正确图像,以从客户端完成这项工作。
您还可以创建一个在所有设备大小上都很好的图像,然后将该图像加载到UIImageView中,并设置其contentMode UIViewContentMode.scaleAspectFill以将整个图像填充到视图的框架中,从而裁剪掉顶部、底部或侧面的某些部分。
发布于 2016-09-29 00:52:53
我已经在我的项目中使用'xcassets‘解决了这个问题。系统基本上会为你解决“设备大小”的问题。另外,尝试不同的contentMode属性(即‘aspectFit’,'aspectFill','scaleToFill')。
我要注意的另一件事是'autoResizingMask‘属性的值。在大多数情况下,如果我的大小没有达到我认为应该的大小,我会检查是否给了autoResizingMask一个值“No”。
我希望这能帮到你!
https://stackoverflow.com/questions/39614889
复制相似问题