我有一个 NSView 的子类,它正在绘制一系列虚线。当我调整 View 所在窗口的大小时,虚线会改变其模式。如何防止线条在窗口大小调整期间改变其图案?
这些线是在以下函数中绘制的:
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
数组包含每行双向的行。这意味着对于每条线,它都在两个方向上绘制一条虚线。这些虚线重叠,并且在调整大小时会同相和异相,从而导致此行为。
关于swift - 如何修复调整 View 大小时 CoreGraphics 虚线变化的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55790210/