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