【问题标题】:Is it possible to erase drawing made by NSRectFill?是否可以擦除由 NSRectFill 绘制的绘图?
【发布时间】:2011-07-01 03:53:44
【问题描述】:

我一直在使用NSRectFill 在屏幕上绘制矩形。我想擦除这些矩形。我不能在它们上面画画,因为它们背后的背景是有纹理的,不能用纯色复制。这可能吗?

【问题讨论】:

    标签: objective-c cocoa draw erase rect


    【解决方案1】:

    我对 Objective-C 或 Cocoa 了解不多,因此无法提供详细信息,但以下是我面向 Windows 的思维方式:

    只需请求重绘窗口,然后不要绘制矩形。

    【讨论】:

    • Cocoa 的工作方式相同。只需保留一个可变矩形数组,并删除其中的一个或多个,将其从数组中删除并调用[theView setNeedsDisplay:YES] 以触发theView 的重绘。在视图的-drawRect: 方法中,只需绘制背景,然后循环遍历矩形数组并绘制它们。
    • 您也可以setNeedsDisplayInRect: 传递您要删除的矩形,然后仅重绘该矩形中的背景,并仅重绘与其相交的任何剩余矩形。
    【解决方案2】:

    再次绘制背景。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-03
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多