제목 호출이 작동하는 데 문제가 있습니다. 아래 테스트는 주황색 2 개와 녹색 1 개를 그려야합니다. 여기 UIGraphicsPushContext (aContext) 및 UIGraphicsPopContext() 작업
는- 은 내가
- 내가 밀어 현재 컨텍스트를 전송, 200200에서 무승부 greenRect 전화 50,50
- 에 주황색 사각형을 그립니다 ... 아래 코드에 대한 이해입니다 스택의 현재 컨텍스트, 획 색상을 변경하고 녹색 직사각형을 그립니다. 10000100
- 원래 컨텍스트 (오렌지색 획 색상)를 복원해야하는 현재 컨텍스트를 팝합니다.
- 마지막으로 사각형 오렌지
마지막 사각형을 쓰다듬어해야하는해야 스트로크 오렌지,하지만, 녹색 쓰다듬어 나는 원본 문장
생각을 수정 내게 말하고있다?
- (void)drawRect:(CGRect)rect{
CGRect aRectangle=CGRectMake(50., 50., 40., 40.);
UIBezierPath *path=[UIBezierPath bezierPathWithRect:aRectangle];
UIColor *strokeColor=[UIColor orangeColor];
[strokeColor setStroke];
[path stroke];
CGContextRef context=UIGraphicsGetCurrentContext();
[self drawGreenRect:context];
CGRect anotherRectangle=CGRectMake(100., 100., 40., 40.);
UIBezierPath *anotherPath=[UIBezierPath bezierPathWithRect:anotherRectangle];
[anotherPath stroke];
}
- (void)drawGreenRect:(CGContextRef)ctxt{
UIGraphicsPushContext(UIGraphicsGetCurrentContext());
CGRect aRectangle=CGRectMake(200., 200., 40., 40.);
UIBezierPath *path=[UIBezierPath bezierPathWithRect:aRectangle];
UIColor *strokeColor=[UIColor greenColor];
[strokeColor setStroke];
[path stroke];
UIGraphicsPopContext();
}
애플 문서에 따르면 UIGraphicsPushContext는 지정된 그래픽 컨텍스트를 현재 컨텍스트로 만듭니다. 이 함수를 사용하여 이전 그래픽 상태를 저장하고 지정된 컨텍스트를 현재 컨텍스트로 만들 수 있습니다. 이 함수에 대한 호출과 UIGraphicsPopContext 함수에 대한 호출의 균형을 조정해야합니다. 응용 프로그램의 메인 스레드에서만이 함수를 호출해야합니다. 이 함수를 사용하여 그래픽 컨텍스트를 저장하려면 어떻게합니까? – suhrmesa