Iam時,CALayer/UIView使用自定義圖層在我的UIView
上繪圖時崩潰。要使無效並更新圖層,我需要將我的視圖設置爲我的CALayer
的代表。完成此操作後,它會正確繪製文本,但當視圖接收到應用程序崩潰時會提取。 我做錯了什麼?當我觸摸UIVIew
- (void) layoutSubView {
if (drawLayer == nil) {
drawLayer = [[CALayer alloc] init];
[drawLayer setDelegate:self];
[[self layer] addSublayer:drawLayer];
}
[drawLayer setFrame:[self bounds]];
[drawLayer setNeedsDisplay];
}
以上是我設置CALayer的代碼,下面是覆蓋的drawLayer方法。
- (void) drawLayer:(CALayer *)layer
inContext:(CGContextRef)ctx {
if (layer == drawLayer) {
UIGraphicsPushContext(ctx);
[self drawTitle:ctx];
UIGraphicsPopContext();
}
}
這是堆棧。
你有沒有重寫touchesBegan/Moved/End?什麼是事故原因? – sergio 2011-05-30 15:50:50
不,我沒有重寫他們,我應該只是爲了防止崩潰? – Konrad77 2011-05-30 15:55:50
我不這麼認爲,但是我會嘗試重寫'convertPoint:fromLayer'來查看哪些參數被傳入......您沒有說出哪個是與崩潰相關的確切錯誤消息... – sergio 2011-05-30 16:24:19