我有这段代码
CGFloat dashArray[] = {5,2};
CGContextSetLineDash(context, 3, dashArray, 4);
CGMutablePathRef path = [self newArcPathAtPoint:point withRadius:radius startAngle:startAngle endAngle:endAngle];
[color setStroke];
CGContextAddPath(context, path);
CGContextStrokePath(context);
CGPathRelease(path);
它在'Debug'上给我这个:
这就是'发布':
我不知道如何开始调试这个。任何人都可以帮我解决这个问题或给我尝试调试的想法吗?
答案 0 :(得分:5)
所以我终于找到了问题所在。这条线就是问题:
CGFloat dashArray[] = {5,2};
CGContextSetLineDash(context, 3, dashArray, 4);
我开始收到以下错误消息:
CGContextSetLineDash: invalid dash array: negative lengths are not allowed.
在进一步调查中,我发现需要修复我发送给CGContextSetLineDash的参数。以下工作:
CGFloat dashArray[] = {5,2};
CGContextSetLineDash(context, 0, dashArray, 2);
错误的代码虽然在调试模式下工作,但这导致了对错误的混淆。希望这可以帮助将来的某个人。
答案 1 :(得分:1)
我知道这是一个古老的问题,但我遇到了同样的问题,几乎要拔掉我的头发了。我尝试了我能在这里找到的所有答案。但对我来说解决同样问题的方法是:
似乎在这个阶段发生的事情正在影响虚线的绘制方式。
希望这可以帮助其他人解决这个问题。