我正在研究使用故事板为我的应用程序启动图像.该应用程序始终使用大型照片作为启动图像,该照片也用作第一个视图的背景.但是,当应用程序在iPad上以横向方式启动时,图像会有所不同.
那么在使用自适应故事板作为发布屏幕时,有没有办法区分纵向iPad和横向iPad?因为它是一个启动屏幕,我不能运行任何代码,它必须完全通过故事板完成.
我找到了一种使用间隔视图的解决方案,将正确的图像放置在可见区域中,并将另一个图像移出屏幕(如David H所建议的)。
\n\n您无法为不同的屏幕尺寸(iPhone 4、iPhone X...)提供不同的图像,但如果您想要为 iPhone 和 iPad 提供不同的图像,以及为纵向和横向提供不同的图像,此解决方案适合您。
\n\n如果您想尝试一下,我在 github 上创建了一个示例项目。\n它适用于 iPad 和 iPhone。
\n\n\n\n重要的限制是
\n\nPortraitSpacer.width \xe2\x89\xa4 5 \xc3\x97 view.width\nPortraitSpacer.width \xe2\x89\xa4 5 \xc3\x97 view.height\n\nLandscapeSpacer.width \xe2\x89\xa5 5 \xc3\x97 view.width\nLandscapeSpacer.width \xe2\x89\xa5 5 \xc3\x97 view.height\n\nPositionSpacer.width = 5 \xc3\x97 view.width\n
Run Code Online (Sandbox Code Playgroud)\n\n哪里view.width
和view.height
是主视图的宽度和高度。
PortraitSpacer
纵向图像的位置为,5 \xc3\x97 min(view.width, view.height)
横向LandscapeSpacer
图像的位置为5 \xc3\x97 max(view.width, view.height)
,\n的PositionSpacer
宽度与纵向模式下的宽度相同,并且与横向模式下的PortraitSpacer
宽度相同。LandscapeSpacer
我们将所有内容乘以 5,这样两个图像就不会重叠。这适用于满足以下条件的所有设备
\n\n5 \xc3\x97 min(view.width, view.height) + max(view.width, view.height) \xe2\x89\xa4 5 \xc3\x97 max(view.width, view.height)\n
Run Code Online (Sandbox Code Playgroud)\n\n在横向模式下,这意味着
\n\n5 / 4 \xe2\x89\xa4 view.width / view.height\n
Run Code Online (Sandbox Code Playgroud)\n\n目前所有设备都是如此:iPad 的纵横比最低,为 4:3,但仍大于 5:4。
\n\n然后,您当然可以在资产目录中配置每个设备(iPhone、iPad)的图像。
\n 归档时间: |
|
查看次数: |
2017 次 |
最近记录: |