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:这可能会对填充行为、线条连接样式或其他绘图怪癖产生影响。关闭路径可确保在起始/结束点获得线条连接。文档中经常提到这一点,但我目前找不到。