我为Mac创建了一个应用程序,它使用链接到toggleCollapse
按钮的水平调整大小视图(技术上是BWToolkit调整大小视图)。折叠并展开面板几次后,会发生这种情况(见图)右侧表视图应与面板分隔器齐平。任何人都有关于为什么会发生这种情况的任何信息。我已经仔细调整了我的对齐方式和锚点是正确的,但似乎这是一个奇怪的问题会导致视图错误?
编辑:是否有人没有这个问题?任何输入都会有所帮助!也许我只需要重新开始?
答案 0 :(得分:4)
这是BWSplitView本身的已知错误,与视图动画和计时器在该视图中的交互方式有关。详情请见:
基本上,在对视图进行动画处理之前,会取消设置autoresizesSubviews,以便可以折叠/展开视图而不会影响内容;然后计划一个计时器以恢复动画完成时的autoresizesSubviews属性。但是(当然)动画有时可能比预定的计时器点火更早或更晚完成;因此,在动画完成之前打开自动调整功能,从而调整几个像素大小。正如您可能已经看到的那样,当视图折叠和未折叠时,子视图往往会移动一点。
对此的“完整”修复是在使用回调完成CAAnimation时恢复自动调整,但尚未实现。然而,在该线程中,“Robert Payne”发布了一个使用稍微不同的方法的BWSplitView.m版本 - 在折叠之前记录视图大小,并在扩展之后恢复。我自己应用了这个补丁(我认为它最初不会编译 - 但它只是一个未声明的变量的简单问题?)并且可以确认它确实解决了这个问题。
如果您想要成功编译的BWSplitView.m或编译框架的副本,请告诉我。