儘管查看了超過3個帖子(2015年製作)關於這個問題,但沒有解決我的問題。請設置CG_CONTEXT_SHOW_BACKTRACE環境變量
當過我跑,一個簡單的代碼來繪製使用UIBezierPath程序都將返回我這行:
:CGContextSetStrokeColorWithColor:無效的上下文爲0x0。如果您想要查看回溯,請設置CG_CONTEXT_SHOW_BACKTRACE 環境變量。
:CGContextSetFillColorWithColor:invalid context 0x0。如果您想要查看回溯,請設置CG_CONTEXT_SHOW_BACKTRACE 環境變量。
:CGContextSaveGState:無效的上下文0x0。如果你想看 回溯,請設置CG_CONTEXT_SHOW_BACKTRACE環境 變量。
:CGContextSetLineWidth:無效的上下文0x0。如果你想要 看到回溯,請設置CG_CONTEXT_SHOW_BACKTRACE環境 變量。
:CGContextSetLineJoin:無效的上下文0x0。如果你想看 回溯,請設置CG_CONTEXT_SHOW_BACKTRACE環境 變量。
:CGContextSetLineCap:無效的上下文0x0。如果你想看 回溯,請設置CG_CONTEXT_SHOW_BACKTRACE環境 變量。
:CGContextSetMiterLimit:無效的上下文0x0。如果你想要 看到回溯,請設置CG_CONTEXT_SHOW_BACKTRACE環境 變量。
:CGContextSetFlatness:無效的上下文0x0。如果你想看 回溯,請設置CG_CONTEXT_SHOW_BACKTRACE環境 變量。
:CGContextAddPath:invalid context 0x0。如果您想查看 backtrace,請設置CG_CONTEXT_SHOW_BACKTRACE環境變量 。
:CGContextDrawPath:invalid context 0x0。如果你想看 回溯,請設置CG_CONTEXT_SHOW_BACKTRACE環境 變量。
:CGContextRestoreGState:無效的上下文0x0。如果你想要 看到回溯,請設置CG_CONTEXT_SHOW_BACKTRACE環境 變量。
@interface line : UIView
UIBezierPath *myPath;
.........
@implementation
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches]anyObject];
CGPoint touchLocation = [touch locationInView:self];
myPath = [UIBezierPath bezierPath];
[myPath moveToPoint:touchLocation];
}
- (void) touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches]anyObject];
CGPoint touchLocation = [touch locationInView:self];
[myPath addLineToPoint:touchLocation];
[[UIColor blackColor]setStroke];
[[UIColor greenColor]setFill];
[myPath stroke];
}
如果我使用的drawRect
- (void) drawRect:(CGRect)rect {
....
}
畫沒有錯誤會彈出。我想知道如果我收到這些錯誤,因爲touchesBegan
和touchesMoved
無法執行繪圖?
在可可(OS X)中,我曾經使用setNeedsDisplay
,但它在可可觸摸中不存在。
我所問的是,無論如何刪除這些錯誤,或者有另一種方式來在運行時繪製UIBezierPath
。
我也有類似的問題,並試圖調用的drawRect迫使一些圖形代碼加載時我看來繪製重繪。我試圖把我自己的價值放在drawRect參數中。使用setNeedsDisplay來解決我的問題。 – SpaceTrucker