2013-10-05 2 views
0

나는 오랫동안의 UITextField에서 언론과 돋보기가 동시에내가 왜 cgcontext

예에서보고 같은 많은 오류가 나타날 때 나는 보통이 오류를 얻고으로이 오류를 얻고있다 : CGContextSetStrokeColorWithColor : 컨텍스트 0x0이 잘못되었습니다. 이것은 심각한 오류입니다. 이 응용 프로그램 또는이 응용 프로그램이 사용하는 라이브러리는 잘못된 컨텍스트를 사용하므로 시스템 안정성과 안정성이 전반적으로 저하됩니다. 이 통지는 예의입니다.이 문제를 해결하십시오. 곧 업데이트 될 치명적인 오류가 될 것입니다. 이 코드

- (void)drawRect:(CGRect)rect 
{ 
// Drawing code 

CGContextRef context = UIGraphicsGetCurrentContext(); //context 
CGContextBeginPath (context); 
CGContextSetLineWidth(context,3); 
CGPoint center = CGPointMake(rect.size.width/2, rect.size.height/2);//get the view centre 

//get the polygon points 

CGContextMoveToPoint(context, center.x-70,rect.size.height - 140); 
CGContextAddLineToPoint(context, center.x + 130, rect.size.height - 140); 
CGContextAddLineToPoint(context, center.x - 70, 100); 
CGContextAddLineToPoint(context, center.x- 70, rect.size.height - 140); 
CGContextAddLineToPoint(context, center.x - 50, rect.size.height -140); 
CGContextAddLineToPoint(context, center.x - 50, rect.size.height - 160); 
CGContextAddLineToPoint(context, center.x - 70, rect.size.height - 160); 


CGContextClosePath(context);//close the path 
//[[UIColor clearColor] setFill];//set the colour for fill 
[[UIColor blackColor] setStroke];//set the line color 
CGContextDrawPath (context, kCGPathStroke);//draw 

} 

답변

1

당신이 drawRect: 메서드를 호출 하나 뭐가 잘못

을 다음과 같이

내가 가지고있는 유일한 그리기 코드는? 이것을하지 말아야하며 setNeedsDisplay으로 전화해야하며 신청서는 적절한 시간에 drawRect:으로 전화 할 것입니다.

drawRect: 메서드를 직접 호출하면 컨텍스트 스택에 푸시 된 CGContext가 없으므로 UIGraphicsGetCurrentContext()nil을 반환하므로 사용자가보고있는 오류가 발생합니다.

+0

나는이 draw rect 문을 독자적으로 하나의 클래스에 가지고있다. 그런 다음 내 창고에 uivrollview를 추가하고 uiview를 추가했다. - 그런 다음이 uiview의 클래스를 drawrect 문을 포함하는 클래스 이름으로 변경했습니다. 모든 일을 완료했습니다. drawrect를 직접 호출하지 않거나 호출 집합에 아무 곳이나 표시해야합니다. 이게 내가 pre ios 7에서 일한 것 같아. 그래서 이번에는 틀릴 수 있니? – superllanboy

+0

문제는'UIGraphicsGetCurrentContext()'가 nil을 반환한다는 것입니다. 일치하는 푸시없이'UIGraphicsPopContext'라고 부른 다른 곳이 있다고 가정하지 않습니까? 아마도 일치하는 저장이없는'CGContextRestoreGState' (아마도 예외가 발생한다고 생각하기는하지만). –

+0

감사합니다. james - 컨텍스트가 nil이지만 그 문제를 해결하는 방법을 모르겠다는 것을 확신합니다. 코드는 xcode 4.3에서 컴파일 된 경우 오류없이 정상적으로 작동하지만 ios7을 사용하여 xcode 5에서 컴파일 할 때 오류가 발생합니다. 어떻게 그래픽 컨텍스트를 강제로 생성합니까? 나는 내보기에서 UIGraphicsBeginImageContext (self.view.bounds.size)를 넣으면 내 메인보기 컨트롤러의 문을로드했음을 알았습니다. 문제는 사라지지만이 문제에 대한 올바른 해결책입니까? - 당신이 조언 할 수 있기를 바랍니다. – superllanboy