我有0x0
限制在AutoLayout(固定在主视图的240px
坐标上,height
固定宽度并等于主视图的[self.leftMenu setFrame:NSMakeRect(0, 0, menuWidth, 2000.0)];
[self.leftMenu setFrameSize:NSMakeSize(menuWidth, 2000.0)];
我遇到的问题是,当我的内容垂直增长时,剪辑似乎并不理解我想要的东西(垂直滚动启用)。
我试过了两个:
[self.leftMenu needsUpdateConstraints];
并触发它:
height
然而没有变化。我甚至试图默认显示垂直滚动条以查看是否存在问题,但它确实无法滚动。
因此,我的默认视图445px
为1000px
(表示滚动视图容易出现getVar() { return mVar; }
),当我调整窗口大小时,它合法地显示了我拥有的溢出内容以编程方式绘制。
我来到这个iOS-variation和older article,但并不知道正确的做法是什么。在iOS开发中从未遇到过这方面的问题,但这些看似简单的事情引起了一些小麻烦。
答案 0 :(得分:0)
我认为您遇到的问题是因为在内容视图大于滚动视图的情况下,间距约束必须为负。下图说明了应对内容视图设置的约束。
内容视图的前导,尾随和上限约束应为0,底部应为-1555(如果内容视图的高度为2000)。这样做会告诉滚动视图需要多少滚动才能显示整个视图。
我希望这有帮助,我通常使用iOS,所以我遇到了与UIScrollView类似的问题。我知道这两个并不完全相同,但我试图建立一个简单的项目,并用这些约束测试它,我确实滚动。
答案 1 :(得分:0)
NSScrollView不允许您直接修改contentView和documentViews。您的内容包含在某种视图中 - 对于默认的NSScrollView,compile 'com.squareup.okhttp3:okhttp:3.2.0'
内的NSView
内有NSClipView
。
无论您使用什么视图来保存不断增长的内容,只需将该视图重新分配到NSScrollView
的documentView(在更新了它的框架/尺寸appropriatley之后)。这会触发scrollview重新计算所有内容并根据需要激活滚动。
NSScrollView
希望这有帮助!