我为Mac创建了一个应用程序,它使用了一个水平调整大小视图(从技术上讲是一个BWToolkit调整大小视图),该视图链接到一个toggleCollapse按钮。在折叠和展开面板几次后,这会发生(见图像),正确的表视图应该与面板分隔符齐平。任何一个人都知道为什么会发生这种事。我已经仔细调整了我的对齐和锚,以使其正确,但似乎这是一个奇怪的问题,错误的视图?

编辑:是没有这个问题的吗?任何输入都是有帮助的!也许我只需要重新开始?
发布于 2011-02-11 20:54:39
这是BWSplitView本身中的一个已知错误,并且与视图动画和计时器在该视图中的交互方式有关。详情如下:
http://bwalkin.lighthouseapp.com/projects/36323/tickets/34-split-view-doesnt-resize-subview-properly-during-a-toggle-uncollapse-after-manual-collapse
基本上,在视图被动画化之前,autoresizesSubviews是未设置的,因此可以在不影响内容的情况下折叠/展开视图;然后安排一个计时器来恢复动画完成后的autoresizesSubviews属性。但是(当然)动画的完成时间可能比预定的计时器触发的稍微早,或者更晚;因此,在动画完成之前,自动调整大小就会被打开,从而导致一些像素大小的调整。正如您可能已经看到的,子视图倾向于在视图被折叠和未折叠时移动一些。
这方面的“完整”修复是在CAAnimation使用回调完成后恢复自动调整大小,但尚未实现。然而,在这个帖子中,"Robert“发布了一个版本的BWSplitView.m,它使用了一种稍微不同的方法--视图大小在折叠之前被记录下来,在扩展后恢复。我自己应用了这个修补程序(我认为它一开始不会编译--但这只是一个未声明的变量的简单问题?)可以确认它确实解决了问题。
如果您想要成功编译的BWSplitView.m,还是编译后的框架的副本,请告诉我。
https://stackoverflow.com/questions/4882683
复制相似问题