Autolayout-处理七个按钮的圆形,不影响前导、尾随、垂直和水平间距

Posted

技术标签:

【中文标题】Autolayout-处理七个按钮的圆形,不影响前导、尾随、垂直和水平间距【英文标题】:Autolayout-handle seven buttons circular shape without affecting leading,trailing,vertical and horizontal spacing 【发布时间】:2016-12-01 07:49:29 【问题描述】:

这是我的故事板:

我在 Viewcontroller 上有七个按钮。我想以这样的方式添加约束,如果屏幕尺寸增加,它会自动增加它的高度和宽度,如果屏幕尺寸减小,它会自动减少它的高度和宽度,而不影响前导、尾随、水平和垂直间距。

我尝试通过固定按钮的高度和宽度来做到这一点,因为如果不固定,这将不起作用,因为按钮是圆形的,如果我在不固定高度和宽度的情况下这样做,它会变成菱形或其他形状。我应该使用什么来使形状保持圆形并根据要求自动设置高度和宽度?

【问题讨论】:

请张贴代码或向我们展示您添加的限制条件...也许任何人都可以帮助您 我现在已经清除了约束...如果您可以设置两个按钮并显示如何设置,那么它会有所帮助。 按钮是方形的吗?如果你想让它们圆,一定是这样 是的,它们是方形的,我也添加了有问题的图像 您是否尝试过使用尺寸等级?如果没有,它可能是您的最佳选择。 【参考方案1】:

要使它们变圆,请尝试以下操作

myButton.layer.cornerRadius = myButton.frame.size.width/2
muButtonlayer.masksToBounds = true

这将使您的按钮在各种形状中都是圆形的。 为了使它们在每一帧中保持正方形,您应该设置纵横比约束。 由于所有按钮的高度宽度相同,因此您必须通过选择故事板中的所有按钮来添加 equalHeight 和 equalWidth 约束。

【讨论】:

【参考方案2】:

如果您想要按钮的动态高度宽度,请使用乘数。 设置按钮宽度等于屏幕宽度并选择此约束并设置乘数 0.3。并检查纵横比。

查看附加图像。

【讨论】:

“设置按钮宽度等于屏幕宽度”是什么意思? 设置按钮宽度约束等于屏幕宽度。【参考方案3】:

您要做的是指定按钮之间的间距,并且指定固定的高度或宽度。每个按钮都应具有 1:1 的纵横比和相等的宽度限制(如果您打算让它们保持相同的大小)。

必须像 Dev_Tandel 指出的那样动态设置拐角半径。

这与我之前在这里所做的答案非常相似:

https://***.com/a/34294883/16785

【讨论】:

以上是关于Autolayout-处理七个按钮的圆形,不影响前导、尾随、垂直和水平间距的主要内容,如果未能解决你的问题,请参考以下文章

数据预处理基于Pandas的数据预处理技术前七个任务

使用AutoLayout布局适配时,如何提前获得AutoLayout完成适配后的子控件的真实frame

iOS:变色圆形按钮

android 如何设置按钮 不可点击

如何使用 AutoLayout 均匀放置四个按钮? [复制]

PCB 圆形板切边算法 实现