【发布时间】:2019-07-21 20:35:47
【问题描述】:
我有一个带有 8 个同心“环”的 Photoshop 文件(虽然有些不是环,而且更不规则),最大的在“后面”,尺寸减小到第 8 个,中间非常小.
“环”的绘制方式使得较小的环位于其“外部”或下一个较大环的“内部”。每个“环”的外部都是透明的,但内部也是透明的(较小的环会“坐”在那里)。
我需要支持所有 iOS 设备(通用应用)。
最大的图像的默认大小为 2048x2048 像素,但 8 层中的每一层都有一个共同的“中心”点,它们需要围绕该点旋转,并且需要围绕该点进行固定。
因此,基本上,所有 8 个都必须分层,一个在另一个之上,这样它们的中心都完全对齐。
但是艺术品的尺寸比任何 iOS 设备都大,并且自动布局必须考虑到每个设备的尺寸和方向,最大(后)层从屏幕边缘插入 8 点。
对于那些无法想象的人,这里是一个粗略的表示,其中深色背景是“透明的”,代表 iOS 设备的宽度或高度中较小的一个(取决于方向):
注意:每个较小的 UIImageView 的位置是精确的。它们都共享一个共同的中心(屏幕的中心),但每个环都位于其后面较大环的“内部”。即绿色、亮粉色和淡粉色圆圈的中心是空的/透明的,无论屏幕大小或方向如何,它们都必须完美地嵌套在一起,就像在 Photoshop 艺术资产中所做的那样。
我在自动布局上花了几个小时试图解决这个问题,当我让它在一个设备和两个方向上工作时,它在任何其他设备上都不起作用。
没有要显示的代码,因为我正尝试在 IB 中执行此操作,以便可以在所有设备上进行预览。
这甚至可以使用 IB / Auto-Layout 还是我必须切换到手动计算比例,以根据运行时的屏幕宽度/高度以及每个“环”之间的关系来调整 UIImageView 的大小?
编辑:
除非我做错了,否则将每个 UIImageView 嵌入到一个透明的 UIView 中,以便使用 UIView 来伪造“插图”,这是行不通的,因为这些数字是硬编码的,因此当它在12.9 英寸 iPad Pro,在 iPhone SE 上,每个“内嵌”UIImageView 的压缩程度更高,不会位于“内”,它是下一个更大的环,而是像一个小字母 O,周围有很多空白空间,因为那些“内嵌”不要缩放。iPad 上的 100pts 是很小的空间,但 iPhone SE 上的 100pts 是屏幕的 1/3。
【问题讨论】:
-
你能从 IB 展示你的布局吗?
-
应该很容易做,只需要创建一个容器,把所有的图片都放进去,然后设置图片之间的宽高关系
-
你能分享你想要的设计图像和行为吗?
-
已经描述得很清楚了,我不能分享真实资产,因为它们属于客户,但如果你真的需要的话,我已经提供了一个粗略的模型。更多的是关于拥有相同中心但大小和形状不同的事物之间的关系……这就是问题所在。
标签: ios swift xcode autolayout ios-autolayout