我有一个NSView的子类,它绘制了一系列虚线。当我调整视图所在的窗口大小时,虚线会改变它们的模式。如何在窗口调整大小期间阻止线条更改其模式?
正在使用以下函数绘制线条:
func drawLines(in context: CGContext) {
for line in lines {
context.move(to: line.start)
context.addLine(to: line.end)
context.setLineDash(phase: 0, lengths: [10, 10])
context.strokePath()
}
}
从draw(_ :)调用此函数:
override func draw(_ dirtyRect: NSRect) {
guard let context = NSGraphicsContext.current?.cgContext else { return }
drawLines(in: context)
}
调整窗口大小时,线条图案会发生变化 - 有时虚线看起来完全是固定的:
事实证明,我的lines
数组包含每条线在两个方向上的线。这意味着对于每条线,它在两个方向上画一条虚线。这些虚线是重叠的,并且在调整大小时会进入和退出,这会导致这种行为。