我有一个NSView
嵌入在NSScrollView
.
在我的应用程序中更改放大倍数时,我通过调整约束和调用来更改视图的框架layoutSubtree:
。
现在我想在更改嵌入视图的大小后将视图的同一区域居中。
以下代码应该可以解决问题 -
滚动条实际上看起来更新了,即它们扩展并粘在同一位置。但是,滚动视图似乎不知道更改的位置。
当开始手动滚动(更新的)视图时,滚动条位置从通过代码更改的位置“跳转”到反映视图滚动位置的实际位置。
在通过代码设置滚动条后,感觉就像reflectScrolledClipView:
是需要反转的..
伪代码:
double hScrollPos = NSScrollView.horizontalScroller.doubleValue;
double vScrollPos = NSScrollView.verticalScroller.doubleValue;
[view updateFrameSizeAndStuff];
[view invalidateIntrinsicContentSize];
// this seems to early though:
NSScrollView.horizontalScroller.doubleValue = hScrollPos;
NSScrollView.verticalScroller.doubleValue = vScrollPos;