根据设备调整按钮宽度和高度
Posted
技术标签:
【中文标题】根据设备调整按钮宽度和高度【英文标题】:Adjusting button width and height according to device 【发布时间】:2015-05-23 16:39:05 【问题描述】:我正在尝试为我正在玩的应用程序创建一个键盘。键盘将是标准的四行数字,数字 0 - 1、小数和 +/-。没什么特别的。我试图让它只占用垂直屏幕空间的 1/2。使用约束,我将左下按钮固定在屏幕的左侧和底部,将右下按钮固定在屏幕的底部和右侧。我设置了左侧按钮的宽度和高度,然后在该按钮上使用了纵横比。在剩下的底部按钮上,我按住 Control 键向左拖动到它旁边的那个,然后选择水平间距、Y 中心、等宽和等高,然后从上面的每个按钮控制拖动到下面的按钮,然后选择约束列表中的垂直间距、中心 X、等宽和等高。我的想法是左下角的按钮会根据选择的设备进行调整,然后所有其他按钮都会根据这个按钮进行调整。
显然,我错了。这些按钮设置得很好,它们保持在彼此上方和相邻的位置,没有任何空间,但它们并没有完全占据屏幕的一半。根据所选设备,它们上方的空间按比例增加或减少。显然,我要么遗漏了一些东西,要么我完全走错了路。
任何有关如何完成此任务的建议将不胜感激。我仍在学习约束如何相互影响,但我认为我的想法是合理的。让一个按钮自行调整到正确的大小(左下方按钮上的纵横比),然后强制所有其他按钮保持相同的宽度、高度和距离。
【问题讨论】:
【参考方案1】:左下角的按钮不会调整它的大小,因为你给了它一个固定的宽度和高度。按钮上不应设置任何明确的宽度或高度。它们都应该设置为相同的大小,只要你有从左边缘到右边缘的约束,就应该设置它们的宽度。它们的高度也将根据纵横比限制来设置。
这将导致按钮的大小仅取决于屏幕大小,但不会使它们成为屏幕高度的一半(这仅适用于具有特定纵横比的一种屏幕大小)。为了使按钮占据屏幕垂直高度的一半,您可能希望将它们包含在该高度的视图中。但是,您将在按钮的纵横比和屏幕的纵横比之间产生冲突。您要么需要放弃纵横比,要么不将按钮的右侧固定到屏幕的右侧,并使用使按钮全部适合屏幕的纵横比。
【讨论】:
我输入宽度和高度的原因是因为如果我不输入,我会收到有关帧在运行时不同的警告。我真的只是根据我对这些东西如何工作的了解来猜测这些东西。也许我不知道的对我的影响更大。我只是不确定如何使这项工作。纵横比似乎是要走的路,但它并没有像我预期的那样发挥作用。按钮的宽度可以根据上面给出的场景进行很好的调整。高度根本没有调整。这就是按钮太高的问题所在。 @Scott 我不明白这是怎么回事:“按钮的宽度在上面给出的场景下调整得很好”如果你为按钮设置了一个明确的宽度,除非你得到警告,并且系统正在打破一个或多个约束。如果一行中的所有按钮都具有相同的宽度,并且其中一个具有设定的宽度,并且您有从左边缘到右边缘的间距约束,那么加起来就是一个固定的数字——它不应该是可以调整。 我明白你在说什么,我真的明白。但是按钮确实按比例缩小了宽度。我将视图设置为三个按钮,占据整个屏幕。无论我在哪个模拟设备上运行,按钮都完全适合。宽度明智,而不是高度。我只明确设置了第一个按钮的宽度和高度。其他按钮设置为相同的宽度,相同的高度。在我删除明确的宽度和高度之前没有警告。 @Scott 我不认为你有你认为的限制。设置第一个按钮的宽度,并将它们设置为相等与为所有按钮设置宽度相同。这 3 个宽度加上任何空格有加起来是一个固定的数字。它不能用于超过一个屏幕宽度。如果你能把你的项目贴在某个地方,我会看看,否则,我不知道你到底在做什么。 谢谢。我在这里上传了项目:app.box.com/files/0/f/3666170919/Keypad_Project以上是关于根据设备调整按钮宽度和高度的主要内容,如果未能解决你的问题,请参考以下文章