我应该使用视图约束还是最小窗口大小?

我正在制作一个在OS X上使用的应用程序,并且我注意到界面生成器(现在内置于Xcode中)中的新约束功能是多么有用。 事实上,它非常有用和动态,所以我在质疑我是否应该设置最小窗口大小,还是仅仅依靠我的窗口的约束条件来设置最小值和最大值。

我有一种感觉,OS X会考虑最小和最大窗口大小,而不是以某种方式限制窗口大小,并且为此设置最小和最大值可能很有用,但我也觉得它可能是好的样式依赖于约束来动态地设置最小和最大窗口高度,因为它们的动态行为和所有。 例如,如果我决定用约束来改变控件的最小宽度,我不必担心也会改变最小窗口的最小宽度。

依赖约束来设置最小和最大窗口大小的另一个更重要的例子是,如果用户改变了文本大小之类的东西,我的应用程序中受影响的控件就可以动态地改变它们的大小约束,但是静态设置最小和最大窗口大小会破坏动态行为。

再一次,所有这些好处都应该考虑到,因为OS X可能会以某种方式考虑最小和最大窗口大小,并且为此设置最小值和最大值可能很有用; 我只是不知道,如果 OS X把他们考虑在内,如果他们这样做,它是如何使用它们。

我查看了Apple的文档,找不到任何能够提供令人满意的答案的东西。


在这样的情况下做最好的事情是自己尝试一下。 用一个窗口和几个控件创建一个新应用程序花费不到两分钟的时间。 如果您只想使用可调整大小的窗口,则无需添加任何代码:

窗口1

这个窗口没有最小尺寸和限制,问题很明显。 您可以调整窗口大小,使其看起来像这样:

窗口2

在按钮之间添加一些约束显示约束提供的承诺。 现在窗户看起来像它的最小尺寸:

窗口3

标签上的更多约束最终给出了期望的结果:

窗口4

这太好了,但需要一点努力才能到达那里。 我没有添加一组完整的约束 - 两个右手按钮之间的垂直约束可能是多余的,因为左边的按钮之间已经存在一个约束。 对于有很多控件的窗口来说,设置足够的约束来覆盖所有的视图可能是:a)非常有用和值得,或者b)对接中的痛苦和附加值很小。 这取决于你的情况。 一个更简单的方案是将可能重叠的控件的高度(两个按钮和标签)以及它们之间的所需空间相加,然后将其设置为窗口的最小高度。

我可以看到任何一种策略都很有用,具体取决于窗口内容。 事实上,我认为他们根本不是两个独立的策略......设置最小窗口维度实际上只是您添加的另一种约束。 例如,可能会有一个大小低于您的窗口看起来很愚蠢或不是非常有用,所以您可以将最小窗口大小设置为这些大小。 同时,您可能希望在按钮之间设置约束,以防止本地化版本中的重叠控件(例如,德语名称会变得相当长)。

链接地址: http://www.djcxy.com/p/49959.html

上一篇: Should I use view constraints or minimum window size?

下一篇: How to make buttons, with dynamic text, the same size and width to height ratio?