2011-12-07 6 views
0

PDF를 CATiledLayer로 렌더링하는 뷰가 있습니다. 이것은 잘 작동하고 있습니다. CATiledLayer 그림자 그림자 렌더링이 올바르지 않음

는 지금은보기에 그림자를 추가하려고 해요, 그래서 나는 보통 한 :

tiledLayer.masksToBounds = NO; 
    tiledLayer.shadowOffset = CGSizeMake(5, 5); 
    tiledLayer.shadowRadius = 5; 
    tiledLayer.shadowOpacity = 0.5; 
    tiledLayer.shadowPath = [UIBezierPath bezierPathWithRect:self.bounds].CGPath; 

을하지만 내가 렌더링보고 있어요 것은 올바르지 않습니다. 무슨 일이 일어나고있는 것처럼 타일이 그려지면서 각 타일에 그림자가 그려져 있습니다. 모든 타일이 그려지면 최종 제품이 올바르게 보이고 올바른 위치에 그림자가 있지만 중간 렌더링은 산만 해집니다.

CATiledLayer에서 그림자를 사용하려면 어떻게해야합니까?

답변

1

CATiledLayer를 섀도우 속성이 적용된 컨테이너 레이어에 래핑해야합니다. self.bounds 호출로 판단 할 때 뷰 레이어에 CATiledLayer를 이미 포함 할 수 있습니다.이 경우 (masksToBounds이 필요하지 않은 경우) 해당 레이어에 그림자 속성을 직접 적용 할 수 있습니다.

-1

각 타일마다 드롭 섀도우가 그려져 있다는 것은 완벽하게 이해할 수 있습니다. 나는 당신의 타일이 그들 (보통 UIScrollView)을 포함하는 어떤 종류의 부모보기에서로드한다고 가정합니다. 보기를 포함하는 그림자에 그림자를 설정해야합니다.

+0

CATiledLayer를 사용하셨습니까? 단일 타일을 나타내는 것은 아니며, 내용을 * 타일로 그립니다. –

+0

필자는 앱에서 PDF 렌더링에 사용합니다. 이 소리를 각 타일에 적용한 사운드가 옳지 않은 것처럼 보였습니다. 완전히 명확하지는 않지만 OP 포스트에서 이해하고있는 것은 각 타일이 만들어지면서 드롭 섀도우가 렌더링 된 것을보고 있다는 것입니다. 그러나 실제로 그가 원하는 것은 전체 타일 된 영역에 그림자가있는 것입니다. 포함 된 뷰의 레이어에 그림자를 적용하면 이러한 영향이 발생한다고 생각합니다. 게시 한 답변은 매우 유사한 접근 방식처럼 들립니다. 내가 뭘 놓치고 있니? –

+0

어쩌면 나는 "정확히 당신이하도록 지시 한 것"이라고 오해했을 것입니다. 설명 된 동작은 포함 된 뷰 경계의 그림자 경로를 제공 할 때 어떻게 의미가 있습니까? –