我有一个UIVmageView的父UIView和另一个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
根据iPhone 8 / X屏幕尺寸,子UIView内的按钮具有固定的顶部/尾部/前导/底部约束。
如何让所有屏幕尺寸的按钮相应调整大小,同时在图像上保持相同的位置,同时根据屏幕尺寸进行缩放?
更新 用StackView替换内部UIView并更新约束后,分布均匀填充它看起来像下面的结构:
Replaced UIView with StackView
如何让它看起来像这样?
更新2:
添加了stackView的间距和居中的X / Y.
更新3:我在imageView中拥有的图片在Aspect Fit中具有内容模式。如何在此模式下缩放按钮?
答案 0 :(得分:0)
首先关于父视图不要给它静态高度(371) - >而是给主视图提供比例高度约束
关于内部子视图的第二个
1- imageView不会像您认为的那样调整大小,因为它具有前导,尾随,顶部,B约束
对于带按钮的视图,2-相同
而不是给出这些约束条件考虑给予centerX& Y具有预定宽度&这些子视图到父视图的高度约束
如果你还没有使用它,stackView也适合这些按钮
答案 1 :(得分:0)