Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 是否可以擦除NSRectFill生成的图形?_Objective C_Cocoa_Draw_Erase_Rect - Fatal编程技术网

Objective c 是否可以擦除NSRectFill生成的图形?

Objective c 是否可以擦除NSRectFill生成的图形?,objective-c,cocoa,draw,erase,rect,Objective C,Cocoa,Draw,Erase,Rect,我一直在使用NSRectFill在屏幕上绘制矩形。我想删除这些矩形。我不能在它们上面画画,因为它们后面的背景是有纹理的,不能用纯色复制。这可能吗?我对Objective-C或Cocoa了解不多,所以我无法提供详细信息,但以下是我面向Windows的想法: 只需要求重新绘制窗口,然后不要绘制矩形。我对Objective-C或Cocoa了解不多,所以我无法提供详细信息,但我的Windows导向思维是这样想的: 只需请求重新绘制窗口,然后不要绘制矩形。只需再次绘制背景。只需再次绘制背景。Cocoa的工

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

我对Objective-C或Cocoa了解不多,所以我无法提供详细信息,但以下是我面向Windows的想法:


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

我对Objective-C或Cocoa了解不多,所以我无法提供详细信息,但我的Windows导向思维是这样想的:


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

只需再次绘制背景。

只需再次绘制背景。

Cocoa的工作原理与此相同。只需保留一个可变的矩形数组,并从数组中删除一个或多个矩形,然后调用
[视图设置需要显示:是]
来触发视图的重画。在视图的
-drawRect:
方法中,只需绘制背景,然后循环遍历矩形数组并绘制每个矩形。您还可以
设置需要显示提示:
并传递要删除的矩形,然后只重绘该矩形中的背景,并且只重绘与之相交的任何剩余矩形。Cocoa的工作方式相同。只需保留一个可变的矩形数组,并从数组中删除一个或多个矩形,然后调用
[视图设置需要显示:是]
来触发视图的重画。在视图的
-drawRect:
方法中,只需绘制背景,然后在矩形数组中循环并绘制每一个。您还可以
设置需要显示提示:
并传递要删除的矩形,然后只重绘该矩形中的背景,并且只重绘与其相交的任何剩余矩形。