【发布时间】:2018-11-13 05:07:31
【问题描述】:
我有一个父 UIView,里面有一个 UIImageView 和另一个 UIView。 UIImageView 有一个图像,它被限制为与父 UIView 相同的大小。子 UIView 也被限制为与父 UIView 相同的大小,并且它具有位于 UIImageView 某些部分上方的按钮(这允许用户单击图像以根据单击图像的位置触发操作)。
我尝试通过使用尺寸类来设置 AutoLayout 的约束,但我似乎无法让它们根据屏幕尺寸调整大小。我在 iPhone 8 屏幕上创建了固定约束。 iPhone 8、iPhone X 和 iPhone 8 Plus 都有宽度 Compact/height Regular,但它只在 iPhone 8/X 上看起来正确。我还希望缩小 iPhone SE/4s 的按钮尺寸。
这是它的样子(蓝色黑色背景已被替换为真实图像): notice the buttons are the same size in all 3 screens
子 UIView 内的按钮根据 iPhone 8/X 屏幕尺寸具有固定的顶部/尾部/前导/底部约束。
如何让按钮针对所有屏幕尺寸相应调整大小,同时在图像上保持相同位置,该位置也会根据屏幕尺寸进行缩放?
更新: 在用 StackView 替换内部 UIView 并更新约束后,分布均匀填充后,它看起来像以下结构:
Replaced UIView with StackView
如何让它看起来像这样?
更新 2:
增加了 stackView 的间距和居中的 X/Y。
更新 3: 我在 imageView 中的图像在 Aspect Fit 中具有内容模式。在这种模式下如何缩放按钮?
【问题讨论】:
标签: ios swift uibutton uiimageview autolayout