2012-08-08 3 views
3

그림자를 CALayer에 추가하고 있는데이 그림자가보기의 왼쪽과 오른쪽에만 있어야합니다. 이것이 가능한지 아는 사람 있습니까?그림자가 왼쪽과 오른쪽에 있습니다.

현재,이 같은 그림자를 추가하고 :

view.layer.shadowColor = [UIColor blackColor].CGColor; 
view.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); 
view.layer.shadowOpacity = 1.0f; 
view.layer.shadowRadius = 4.0f; 
view.layer.shadowPath = [UIBezierPath bezierPathWithRect:view.bounds].CGPath; 
+0

// 왼쪽 그림자 view.layer.shadowOffset = CGSizeMake (- 1.0f, 0.0f); // 오른쪽 그림자 view.layer.shadowOffset = CGSizeMake (1.0f, 0.0f); – Bala

답변

0

당신은 뷰의 경계에 그림자 경로를 설정합니다. 해당 사각형을 가져 와서 CGRectInset (음수 x 값 및 0 y 값 포함)을 사용하여 확장 해보십시오. 이렇게하면 레이어의 왼쪽과 오른쪽을 넘어 확장되는 그림자 경로가 생깁니다. 반경을 변경하거나 y 값을 약간 삽입하여 위아래로 그림자가 나타나지 않도록해야 할 수 있습니다.

+0

상단 및 하단 프레임을 숨기려면 프레임을 다음과 같이 설정해야합니다. 이 문제는 왼쪽 그림자와 오른쪽 그림자가 작게 만들어지는 것입니다 (높지는 않음). 'CGRect shadowFrame = CGRectInset (view.bounds, -1.0f, 7.0f); ' – simonbs

+0

내가 말했듯이, 당신은 반경도 조정해야 할 수도 있습니다. 그것이 당신에게 효과가 없다면, 그림자를 수동으로 그리는 클리핑 패스를 설정해야한다고 생각합니다. – jrturton

관련 문제