NSWindow 调整大小后 NSView 变形
NSView distorted after NSWindow resized
我正在使用 animator()
在我的应用程序的帧(子视图)之间横向滚动 NSScrollView
。当动画发生并且我调整 NSWindow
的大小时,整个 NSView
会像这样扭曲:
这是负责转换的代码:
func goToFrame(frameNumber: Int) {
dispatch_async(dispatch_get_main_queue(), {
var clipView: NSClipView = self.container.contentView
newOrigin: NSPoint = clipView.bounds.origin
newOrigin.x = CGFloat(self.viewWidth * frameNumber)
NSAnimationContext.beginGrouping()
NSAnimationContext.currentContext().duration = 0.4
self.container.contentView.animator().bounds.origin = newOrigin
self.container.reflectScrolledClipView(self.container.contentView)
NSAnimationContext.endGrouping()
})
}
知道为什么要那样做吗?我在日志中没有收到任何警告。
Ken Thomases 在评论中回答:
这一行:
self.container.contentView.animator().bounds.origin = newOrigin
应改为:
self.container.contentView.animator().setBoundsOrigin(newOrigin)
我正在使用 animator()
在我的应用程序的帧(子视图)之间横向滚动 NSScrollView
。当动画发生并且我调整 NSWindow
的大小时,整个 NSView
会像这样扭曲:
这是负责转换的代码:
func goToFrame(frameNumber: Int) {
dispatch_async(dispatch_get_main_queue(), {
var clipView: NSClipView = self.container.contentView
newOrigin: NSPoint = clipView.bounds.origin
newOrigin.x = CGFloat(self.viewWidth * frameNumber)
NSAnimationContext.beginGrouping()
NSAnimationContext.currentContext().duration = 0.4
self.container.contentView.animator().bounds.origin = newOrigin
self.container.reflectScrolledClipView(self.container.contentView)
NSAnimationContext.endGrouping()
})
}
知道为什么要那样做吗?我在日志中没有收到任何警告。
Ken Thomases 在评论中回答:
这一行:
self.container.contentView.animator().bounds.origin = newOrigin
应改为:
self.container.contentView.animator().setBoundsOrigin(newOrigin)