Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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
Iphone 必须在CGContextBeginPath之后调用CGContextClosePath吗?_Iphone_Objective C_Ios_Core Graphics - Fatal编程技术网

Iphone 必须在CGContextBeginPath之后调用CGContextClosePath吗?

Iphone 必须在CGContextBeginPath之后调用CGContextClosePath吗?,iphone,objective-c,ios,core-graphics,Iphone,Objective C,Ios,Core Graphics,如果我的路径在开始处结束,那么可以省略对CGContextClosePath的调用吗?不一定,仅当您想要关闭子路径时才可以。根据iOS开发者库:Quartz 2D编程指南: 要关闭当前子路径,请关闭应用程序 应该调用CGContextClosePath。此函数用于从中添加线段 当前点指向子路径的起点并关闭 子路径。在曲线起点处结束的直线、圆弧和曲线 子路径实际上不关闭子路径。您必须显式地调用 CGContextClosePath关闭子路径 当然,否则路径将不会关闭。它实际上并没有说必须在CGC

如果我的路径在开始处结束,那么可以省略对
CGContextClosePath
的调用吗?

不一定,仅当您想要关闭子路径时才可以。根据iOS开发者库:Quartz 2D编程指南:

要关闭当前子路径,请关闭应用程序 应该调用CGContextClosePath。此函数用于从中添加线段 当前点指向子路径的起点并关闭 子路径。在曲线起点处结束的直线、圆弧和曲线 子路径实际上不关闭子路径。您必须显式地调用
CGContextClosePath
关闭子路径


当然,否则路径将不会关闭。它实际上并没有说必须在
CGContextBeginPath
之后调用
CGContextClosePath
。它说的是,为了关闭子路径,您需要调用
CGContextClosePath
。但是如果您不想关闭子路径,那么您大概不应该调用此方法。@KevinBallard谢谢,我更新了答案。那么,为什么要“关闭”已在起始位置结束的子路径?@MattDiPasquale:这可能会对填充行为、线条连接样式或其他绘图怪癖产生影响。关闭路径可确保在起始/结束点获得线条连接。文档中经常提到这一点,但我目前找不到。