【发布时间】:2014-09-25 19:01:40
【问题描述】:
我遇到的困境与this SO thread 中描述的困境非常相似。我通读了该线程上的每个答案,但找不到任何可以解决我问题的答案。我已将我的问题缩小到下面函数内的 4 行。 4 行中的每一行都输出了几行错误,我在下面列出了所有错误(我已经删除了重复项)。
我尝试将[path closePath]; 移动到这 4 行下方,但它并没有改变任何东西。我还在第一行之前设置了一个断点,并手动逐行遍历函数,只是这4行造成了破坏。
这个问题的趋势似乎是,一切都按照应有的方式呈现,但它会用这些类型的消息淹没控制台。
任何帮助将不胜感激,我很乐意提供更多信息和更新。
功能:
-(CAShapeLayer *)lineBetweenPoint:(CGPoint)start andPoint:(CGPoint)end {
//Draw the first circle
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:start radius:kLineEndRadius startAngle:0 endAngle:DEGREES_TO_RADIANS(360) clockwise:TRUE];
//Add the line
[path moveToPoint:start];
[path addLineToPoint:end];
[path moveToPoint:end];
//Draw the second circle
[path addArcWithCenter:end radius:kLineEndRadius startAngle:0 endAngle:DEGREES_TO_RADIANS(360) clockwise:TRUE];
//Close the path and set the coloring
[path closePath];
/*The following 4 lines cause problems*/
[[UIColor blueColor] setStroke]; /*CAUSES PROBLEM*/
[[UIColor blueColor] setFill]; /*CAUSES PROBLEM*/
[path stroke]; /*CAUSES PROBLEM*/
[path fill]; /*CAUSES PROBLEM*/
//Create a shape layer
CAShapeLayer *shapeLayer = [CAShapeLayer layer];
shapeLayer.path = [path CGPath];
shapeLayer.strokeColor = [kLineColor CGColor];
shapeLayer.lineWidth = kLineWidth;
shapeLayer.fillColor = [kLineColor CGColor];
//Return the layer
return shapeLayer;
}
日志输出:
:CGContextSetStrokeColorWithColor:无效的上下文 0x0。这 是一个严重的错误。此应用程序或其使用的库正在使用 一个无效的上下文,从而有助于整体 降低系统稳定性和可靠性。本通知为 礼貌:请解决这个问题。这将成为一个致命的错误 即将更新。
:CGContextSetFillColorWithColor:无效的上下文 0x0。这是 一个严重的错误。此应用程序或它使用的库正在使用 无效的上下文,从而导致整体退化 系统的稳定性和可靠性。此通知是一种礼貌:请 解决这个问题。这将成为即将到来的更新中的致命错误。
:CGContextSaveGState:无效的上下文 0x0。这是一个严重的 错误。此应用程序或其使用的库正在使用无效的 环境,从而导致整体退化 系统稳定性和可靠性。此通知是一种礼貌:请 解决这个问题。这将成为即将到来的更新中的致命错误。
: CGContextSetLineWidth: 无效的上下文 0x0。这是一个严重的 错误。此应用程序或其使用的库正在使用无效的 环境,从而导致整体退化 系统稳定性和可靠性。此通知是一种礼貌:请 解决这个问题。这将成为即将到来的更新中的致命错误。
:CGContextSetLineJoin:无效的上下文 0x0。这是一个严重的 错误。此应用程序或其使用的库正在使用无效的 环境,从而导致整体退化 系统稳定性和可靠性。此通知是一种礼貌:请 解决这个问题。这将成为即将到来的更新中的致命错误。
:CGContextSetLineCap:无效的上下文 0x0。这是一个严重的 错误。此应用程序或其使用的库正在使用无效的 环境,从而导致整体退化 系统稳定性和可靠性。此通知是一种礼貌:请 解决这个问题。这将成为即将到来的更新中的致命错误。
:CGContextSetMiterLimit:无效的上下文 0x0。这是一个 严重错误。此应用程序或它使用的库正在使用 无效的上下文,从而导致整体退化 系统的稳定性和可靠性。此通知是一种礼貌:请 解决这个问题。这将成为即将到来的更新中的致命错误。
:CGContextSetFlatness:无效的上下文 0x0。这是一个严重的 错误。此应用程序或其使用的库正在使用无效的 环境,从而导致整体退化 系统稳定性和可靠性。此通知是一种礼貌:请 解决这个问题。这将成为即将到来的更新中的致命错误。
:CGContextAddPath:无效的上下文 0x0。这是一个严重的 错误。此应用程序或其使用的库正在使用无效的 环境,从而导致整体退化 系统稳定性和可靠性。此通知是一种礼貌:请 解决这个问题。这将成为即将到来的更新中的致命错误。
: CGContextDrawPath: 无效的上下文 0x0。这是一个严重的 错误。此应用程序或其使用的库正在使用无效的 环境,从而导致整体退化 系统稳定性和可靠性。此通知是一种礼貌:请 解决这个问题。这将成为即将到来的更新中的致命错误。
:CGContextRestoreGState:无效上下文 0x0。这是一个 严重错误。此应用程序或它使用的库正在使用 无效的上下文,从而导致整体退化 系统的稳定性和可靠性。此通知是一种礼貌:请 解决这个问题。这将成为即将到来的更新中的致命错误。
【问题讨论】:
-
你在绘制路径时设置颜色和描边,通常在
drawRect,而不是路径的一部分。必须有当前的图形上下文。
标签: ios objective-c uibezierpath cashapelayer