Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 约束未针对所有屏幕设备正确调整大小_Ios_Uibutton_Autolayout_Constraints - Fatal编程技术网

Ios 约束未针对所有屏幕设备正确调整大小

Ios 约束未针对所有屏幕设备正确调整大小,ios,uibutton,autolayout,constraints,Ios,Uibutton,Autolayout,Constraints,我正在尝试对这些水平按钮进行约束。我希望按钮的大小比例相同,图标之间的宽度和高度相等 你知道我该怎么做才能让这些按钮根据屏幕大小正确调整大小吗?谢谢 将宽度和高度设置为SuperView的比率。设置是否使一个按钮和其余按钮的高度和宽度等于您根据superview高度和大小定义高度和宽度的第一个按钮。使用此选项可以了解如何将高度和宽度设置为superview的比率 希望这有帮助。创建包含图标和文本的UIView组。让我们调用这个容器视图 将所有n个容器视图按您希望的方式放置在故事板中。现在:

我正在尝试对这些水平按钮进行约束。我希望按钮的大小比例相同,图标之间的宽度和高度相等


你知道我该怎么做才能让这些按钮根据屏幕大小正确调整大小吗?谢谢

将宽度和高度设置为SuperView的比率。设置是否使一个按钮和其余按钮的高度和宽度等于您根据superview高度和大小定义高度和宽度的第一个按钮。使用此选项可以了解如何将高度和宽度设置为superview的比率


希望这有帮助。

创建包含图标和文本的
UIView
组。让我们调用这个容器视图

将所有n个容器视图按您希望的方式放置在故事板中。现在:

  • 在最左侧的容器视图中,向超级视图添加前导和底部约束
  • 现在,在第二个容器视图中添加前导空格0(或任何您想要的空格)。Control+将第二个按钮拖动到第一个按钮。按住shift键并选择“等宽”、“等高”和“底部对齐”
现在将与第二个容器视图相同的约束应用于所有n-1容器视图。n是要添加的容器视图的编号。现在,在最后一个(第n个)容器视图中添加一个额外的约束,即superView的尾部空间。现在,所有容器视图的宽度都应该相等,这取决于屏幕的宽度

如果希望对所有容器视图具有特定的高度或纵横比。只需将高度或纵横比约束添加到第一个容器视图中,所有后续视图都会相应更新

如果希望高度取决于屏幕大小,而不是保持特定的纵横比,则必须为第一个容器视图提供与整个视图相同的高度,并使用特定的倍增,如
0.15

您还必须为每个
ui视图中的图标和标签添加适当的约束


编辑:一件简单得多的事情是将图标作为图像添加到
ui按钮
,并像通常一样将文本添加到
ui按钮
ui按钮
将与您发布的屏幕截图非常相似。然后应用我上面提到的约束条件

这很简单,因为所有按钮都是单向的,所以可以使用StackView。 只需简单,首先将相同的高度和宽度应用于所有按钮

现在选择所有按钮并将它们添加到stackview中

它将位于右侧底部。(使用约束图标)

现在简单应用添加缺少的约束。它将自己完成这项工作,并给出更好的结果。(但请注意在此处从“视图中的所有视图”控制器部分应用它)

现在宾果游戏试试这个,每种尺寸都会显示相同的效果


这在模拟器中也同样适用。

解决方案非常简单

见下图(5个按钮)

  • 第一个(蓝色)按钮固定在superview的左侧和底部
  • 其他4个按钮(红色、黑色、绿色、粉色)都与第一个(蓝色)按钮顶部对齐
  • 每个按钮与上一个按钮之间使用水平间距(常数为0)。所以红色按钮对蓝色的水平间距为0,黑色按钮对红色的水平间距为0,以此类推
  • 最后一个(粉红色)按钮也固定在superview的右侧
  • 最后,所有其他4个按钮都设置为与第一个(蓝色)按钮具有相同的宽度
就这样


对于您的图标,您只需将其设置为与您拥有的第一个图标具有相同的宽度和高度

您尝试了哪些约束条件?两条规则1。将文本和图像合并到一个视图中,这样您就有了四个容器视图2。为一个容器视图添加比例的高度和宽度,并以相同的高度和宽度链接其他视图。谢谢您的回答!我做了容器视图。如何约束每个容器视图中的按钮?只需为按钮的超级视图添加尾随、顶部和底部,并为图标的超级视图添加前导、顶部和底部,以及按钮和图标之间的水平间距。谢谢您的回答!但我不希望所有这些按钮都有固定的高度和宽度,因为它们不适合较小的屏幕。所以你也可以给它们一个比例。它也可以在“约束”部分中找到。