【发布时间】:2011-07-01 03:53:44
【问题描述】:
我一直在使用NSRectFill 在屏幕上绘制矩形。我想擦除这些矩形。我不能在它们上面画画,因为它们背后的背景是有纹理的,不能用纯色复制。这可能吗?
【问题讨论】:
标签: objective-c cocoa draw erase rect
我一直在使用NSRectFill 在屏幕上绘制矩形。我想擦除这些矩形。我不能在它们上面画画,因为它们背后的背景是有纹理的,不能用纯色复制。这可能吗?
【问题讨论】:
标签: objective-c cocoa draw erase rect
我对 Objective-C 或 Cocoa 了解不多,因此无法提供详细信息,但以下是我面向 Windows 的思维方式:
只需请求重绘窗口,然后不要绘制矩形。
【讨论】:
[theView setNeedsDisplay:YES] 以触发theView 的重绘。在视图的-drawRect: 方法中,只需绘制背景,然后循环遍历矩形数组并绘制它们。
setNeedsDisplayInRect: 传递您要删除的矩形,然后仅重绘该矩形中的背景,并仅重绘与其相交的任何剩余矩形。
再次绘制背景。
【讨论】: