我正在尝试学习自动布局,所以我可以按照我想要的方式设置一个中等复杂的显示器。我从一个简单的版本开始。至少我认为这很简单。
我有一个包含NSScrollView和缩放滑块的内容视图。当然,滚动视图只是一个窗口,可以进入更大的“画布”,用户可以在其上执行操作。
我希望滚动视图与窗口允许的一样大,滑块位于下方。
我尝试了很多不起作用的东西,在某些情况下,当我将窗口调整得更小时,滚动视图会在窗口的顶部栏上移动,遮住标题和红黄色,绿色,点......这个只是一个抱怨,我不会试图描述我是如何得到它的。
我正在使用Visual Format Language。
当前的问题:如果我在滚动视图上加上一个硬大小的约束,我只能得到这个东西。
我有像@“V:| [ScrollView] - [ZoomSlider(== 35)] - |和 @ “| -20 @ 1000- [滚动型] - |”
有了这些,根本没有任何显示,直到我在滚动视图上放置一个硬尺寸:
例如,@“V:[ScrollView(> = 70 @ 20)]”和@“[ScrollView(> = 140 @ 20)]”会产生一个小小的滚动视图(如预期的那样)滑块。
窗口可以调整大小,好吧。
当我调整窗口大小时,是否有一种简单的方法可以调整滚动视图以占用最大的空间?我能想到的唯一方法是根据窗口大小为滚动视图生成度量标准,并在窗口大小更改时使用通知来更改约束。应该有更简单的东西!
THanks.ee
答案 0 :(得分:0)
糟糕以为我知道答案,直到我开始写它。
至少在这里是对导致我问题的事情的部分解释。
您无法添加用于定位或调整Window内容视图大小的约束。但显然你可以通过以编程方式删除它们来搞砸它们。我的一些问题通过摆脱
解决了[self.myContentView setTranslatesAutoresizingMaskIntoConstraints:NO];
和
[self.myContentView removeConstraints:self.myContentView.constraints];
这给我留下了许多相互矛盾的约束。我修复了这个问题,即消除IB中可能存在的所有内容窗口限制,然后将其余部分标记为占位符。
在我了解如何使用自动布局之前,我还有很长的路要走,但是在代码中执行它比使用IB更容易(对我而言)