2012-01-25 6 views
0

I는 내가 그들의 drawRect 방법, 자신의 레이어를 통해 그림자를 추가하는 UIViews의 무리가이 잘 작동하지만, 내 문제가는 PDF 컨텍스트에 레이어의 그림자를 그리기

self.layer.shadowPath = path; 
self.layer.shadowColor = [[UIColor blackColor] CGColor]; 
self.layer.shadowOpacity = .6; 
self.layer.shadowOffset = CGSizeMake(2,3); 
self.layer.shadowRadius = 2; 

나는 또한 필요를 해당보기를 사용하여 PDF를 작성하십시오. PDF 컨텍스트를 생성하고이를 PDF 컨텍스트에서 그리기 위해 그리기 메서드에 전달하여이 작업을 수행합니다. 그림자가 PDF에서 렌더링되지 않는다는 점을 제외하면 잘 작동합니다. 필자는 몇 가지 접근법을 실험했지만 PDF에 속한 위치에 그림자를 표시하기위한 적절하고 쉬운 방법을 찾지 못했습니다.

누구든지이 작업을 수행하는 방법을 알고 있습니까?

답변

1

CALayer 속성을 사용하는 대신 그림자를 그려 보려면 해당 CoreGraphics 호출을 drawrect에서 만들어야합니다.

빠른 회신 체크 아웃 the Apple docs on shadows.

+0

들으 사이먼. 나는 두려워했다 :) CGContextSetShadow를 사용하여 스트로크와 서브 뷰에 그림자를 추가하는 것을 막을 수있는 방법이 있습니까? –

+0

글쎄, 당신이 할 일은 컨텍스트를 저장/복원하는 것입니다. 그래서 하나의 rect에 그림자를 그리기를 원한다면 CGContextSaveState를 사용하여 현재 상태를 저장 한 다음 그림자를 컨텍스트에 추가하고 rect를 그리고 CGContextRestoreState를 사용하여 그림자를 추가하기 전에 컨텍스트를 복원하십시오 속성을 사용하여 원하는 결과를 얻으려면 도면의 레이어를 계속할 수 있습니다. –

+0

언제든지 저장/불러 오기를 호출 할 수 있으므로 드로잉을 한 다음 저장, 그림자 추가, 복원, 계속 진행 등을 할 수 있습니다. 클리핑에도 동일하게 적용됩니다. –