Ios 根据屏幕大小放大按钮的界面生成器约束

Ios 根据屏幕大小放大按钮的界面生成器约束,ios,interface-builder,constraints,Ios,Interface Builder,Constraints,对于界面生成器来说,这是一个全新的概念。我有5个按钮,间隔均匀。在iPhone5屏幕中设置。我希望按钮和边界之间的间距保持不变,但按钮的大小会随着屏幕的变化而增大(保持相同的纵横比) 我将如何为此设置约束?我是否需要在按钮之间放置不可见的间隔物或其他方法来执行此操作?请执行以下操作: 将所有按钮放入ui视图中 将约束设置为UIView为前导、顶、尾、高和宽 将UIView内所有按钮的约束设置为顶部、前导、宽度和高度 然后同时选择第一个按钮和UIView,并使它们的宽度相等,并根据您需要的按钮数

对于界面生成器来说,这是一个全新的概念。我有5个按钮,间隔均匀。在iPhone5屏幕中设置。我希望按钮和边界之间的间距保持不变,但按钮的大小会随着屏幕的变化而增大(保持相同的纵横比)

我将如何为此设置约束?我是否需要在按钮之间放置不可见的间隔物或其他方法来执行此操作?

请执行以下操作:

  • 将所有按钮放入
    ui视图中

  • 将约束设置为
    UIView
    前导

  • 将UIView内所有按钮的约束设置为顶部前导宽度高度

  • 然后同时选择第一个按钮和
    UIView
    ,并使它们的宽度相等,并根据您需要的按钮数量设置此约束的乘数,此时将
    UIView的
    宽度约束的优先级设置为900(这很重要)。与按钮的宽度约束相同

  • 现在选择所有按钮并将它们设置为等宽,并根据按钮的宽度设置此约束的乘数

  • 删除除第一个按钮外的所有按钮的宽度约束

  • 这样做:

  • 将所有按钮放入
    ui视图中

  • 将约束设置为
    UIView
    前导

  • 将UIView内所有按钮的约束设置为顶部前导宽度高度

  • 然后同时选择第一个按钮和
    UIView
    ,并使它们的宽度相等,并根据您需要的按钮数量设置此约束的乘数,此时将
    UIView的
    宽度约束的优先级设置为900(这很重要)。与按钮的宽度约束相同

  • 现在选择所有按钮并将它们设置为等宽,并根据按钮的宽度设置此约束的乘数

  • 删除除第一个按钮外的所有按钮的宽度约束


  • 查看继承权:

    最终输出:

    解决方案:

    我已开始从中间的按钮(即按钮4)实施约束

    1)对支架视图的限制

    HolderView.centerY=superview.centerY

    HolderView到superview的尾随/前导约束

    2)按钮上的约束4

    按钮4.宽度=按钮4.高度

    按钮4.width=HolderView.superview.width*(1/7)-10
    (是的,它不是打字错误按钮4。宽度是相对于屏幕宽度而不是其支架视图的宽度)

    按钮4.拖至隔套,按钮4.拖至隔套

    按钮4 superview的底部/顶部约束

    使所有其他按钮与按钮4相同(按钮位于中间)

    3)如果您需要对任意数量的按钮进行相同的排列,您只需使用中间按钮的宽度约束即可

    示例项目:

    链接到


    注意:此解决方案仅适用于奇数个按钮查看继承权:

    最终输出:

    解决方案:

    我已开始从中间的按钮(即按钮4)实施约束

    1)对支架视图的限制

    HolderView.centerY=superview.centerY

    HolderView到superview的尾随/前导约束

    2)按钮上的约束4

    按钮4.宽度=按钮4.高度

    按钮4.width=HolderView.superview.width*(1/7)-10
    (是的,它不是打字错误按钮4。宽度是相对于屏幕宽度而不是其支架视图的宽度)

    按钮4.拖至隔套,按钮4.拖至隔套

    按钮4 superview的底部/顶部约束

    使所有其他按钮与按钮4相同(按钮位于中间)

    3)如果您需要对任意数量的按钮进行相同的排列,您只需使用中间按钮的宽度约束即可

    示例项目:

    链接到


    注意:此解决方案仅适用于奇数个按钮

    始终有7个按钮?始终有7个按钮?如何同时选择第一个按钮和UIView?命令在左窗格中单击它们?找不到它的乘数。如何选择第一个按钮和UIView?命令在左窗格中单击它们?找不到它的乘数。如何输入Button4.width=HolderView.superview.width*(1/7)-10?我需要点击约束来编辑它吗?是的,在乘数中你会提到1:7,在常数-10中,它也可以在测试项目中看到。一般约束方程看起来像A.attribute=B.attribute*multiplier+constantAh,我明白了。如何相对于HolderView.superview.width设置宽度约束?首先单击中间按钮,然后添加宽度约束。然后我单击宽度约束,但没有乘数选项。您不会为宽度添加约束,宽度约束是固定的约束,它们不会根据屏幕大小进行缩放,您将使用纵横比约束您所说的使所有按钮等于按钮4。您是在实际复制和粘贴按钮,还是只是按照每个按钮的说明再次操作?如何输入Button4.width=HolderView.superview.width*(1/7)-1