为什么用这段代码(drawRect)渲染了 2 行?
Why are 2 lines rendered with this code (drawRect)?
我想知道为什么我的 window 看起来像这样:
当我调整 window 大小时,一条线保持拉伸,而另一条线保持静态大小和倾斜。
奇怪的是,每当调用 drawRect
时,我都会记录 window 的高度和宽度。
在应用程序启动时,drawRect 方法被调用了 4 次。
我看了看,发现这不是实际尺寸,于是稍微移动了 window 尺寸,得到了 真实的 结果。奇怪的是,它怎么跳得这么快。
奇怪的是"ghost"那条线怎么还在,我不知道哪一个是鬼!为什么?我更改了显示的线条的颜色...并且:
静态显示的是"generated"使用我的代码每个drawRect。
我用于 drawRect 的代码:
- (void)drawRect:(NSRect)dirtyRect
{
NSLog(@"%f, %f", dirtyRect.size.height, dirtyRect.size.width);
NSBezierPath *line = [NSBezierPath bezierPath];
[line moveToPoint:NSMakePoint(NSMaxX([self bounds]), NSMaxY([self bounds]))];
//Sorry about formatting; SO doesn't make it easy to format.
[line lineToPoint:NSMakePoint(NSMinX([self bounds]), NSMinY([self bounds]))];
[line setLineWidth:_lwith]; /// Make it easy to see
[_lineColor set]; /// Make future drawing the color of lineColor.
[line stroke];
}
我需要一些解释,或者任何有帮助的东西!谢谢
自己回答
我做了什么?:我在情节提要中的另一个 NSView 中有我的 NSView 子类;子 NSView 静态保持在一定大小,而 NSView (parent/window) 自由移动。请记住,我将子 NSView 的实例保存在 ViewController 中。
我的 NSView 无论如何都会显示一条线,并且只有在我有它自己的实例时它才会改变颜色。
确保你的故事板已经全部检查过了,我的故事板现在是这样的:
注意只有一个 "graph" 视图是多么整洁 ;)
我想知道为什么我的 window 看起来像这样:
当我调整 window 大小时,一条线保持拉伸,而另一条线保持静态大小和倾斜。
奇怪的是,每当调用 drawRect
时,我都会记录 window 的高度和宽度。
在应用程序启动时,drawRect 方法被调用了 4 次。
我看了看,发现这不是实际尺寸,于是稍微移动了 window 尺寸,得到了 真实的 结果。奇怪的是,它怎么跳得这么快。
奇怪的是"ghost"那条线怎么还在,我不知道哪一个是鬼!为什么?我更改了显示的线条的颜色...并且:
静态显示的是"generated"使用我的代码每个drawRect。
我用于 drawRect 的代码:
- (void)drawRect:(NSRect)dirtyRect
{
NSLog(@"%f, %f", dirtyRect.size.height, dirtyRect.size.width);
NSBezierPath *line = [NSBezierPath bezierPath];
[line moveToPoint:NSMakePoint(NSMaxX([self bounds]), NSMaxY([self bounds]))];
//Sorry about formatting; SO doesn't make it easy to format.
[line lineToPoint:NSMakePoint(NSMinX([self bounds]), NSMinY([self bounds]))];
[line setLineWidth:_lwith]; /// Make it easy to see
[_lineColor set]; /// Make future drawing the color of lineColor.
[line stroke];
}
我需要一些解释,或者任何有帮助的东西!谢谢
自己回答
我做了什么?:我在情节提要中的另一个 NSView 中有我的 NSView 子类;子 NSView 静态保持在一定大小,而 NSView (parent/window) 自由移动。请记住,我将子 NSView 的实例保存在 ViewController 中。 我的 NSView 无论如何都会显示一条线,并且只有在我有它自己的实例时它才会改变颜色。
确保你的故事板已经全部检查过了,我的故事板现在是这样的:
注意只有一个 "graph" 视图是多么整洁 ;)