2011-03-25 3 views
0

CALayer의 그림자 속성은 그 사각형과 레이어에만 해당되는 것입니까? 즉, 석영으로 임의의 경로에서 채우기 경로를 수행하면서 그림자를 설정할 수 있습니다. CALayer의 그림자 속성으로 할 수 있습니까? 나는 그렇게 생각하지 않지만 확인을 원한다.iOS : CALayer 그림자가 사각형입니까?

답변

1

iOS 3.2 이상을 타겟팅하는 경우 원하는 경로를 사용할 수 있지만 iOS에 있지만 OS X에 없기 때문에 사람들이 종종 놓칠 수 있습니다. shadowPath 속성을 확인하면 특정 경로를 설정할 수 있습니다 각 개별 레이어에 대해

또한 그림자를 사용하려는 경우 가능하면 shouldRasterize을 사용하는 것이 좋습니다. 그것은 엄청난 성능 차이를 만듭니다.

3

예, CALayer의 shadowPath 속성을 사용하여 맞춤형 음영을 설정할 수 있습니다. 여기에 한 예가 나와 있습니다.

[shadowDepth.layer setMasksToBounds:NO ]; 
[shadowDepth.layer setShadowColor:[[UIColor blackColor ] CGColor ] ]; 
[shadowDepth.layer setShadowOpacity:0.5 ]; 
[shadowDepth.layer setShadowRadius:6.0 ]; 
[shadowDepth.layer setShadowOffset:CGSizeMake(0 , 0) ]; 
[shadowDepth.layer setShouldRasterize:YES ]; 
UIBezierPath * depthShadowPath = [UIBezierPath bezierPath ]; 
[depthShadowPath moveToPoint:CGPointMake(40 , 140) ]; 
[depthShadowPath addLineToPoint:CGPointMake(shadowDepth.frame.size.width - 40 , 140) ]; 
[depthShadowPath addLineToPoint:CGPointMake(shadowDepth.frame.size.width + 20 , shadowDepth.frame.size.height + 40) ]; 
[depthShadowPath addLineToPoint:CGPointMake(-10 , shadowDepth.frame.size.height + 40) ]; 
[depthShadowPath addLineToPoint:CGPointMake(40 , 140) ]; 
[shadowDepth.layer setShadowPath:[depthShadowPath CGPath ] ]; 

나는 당신에게 성능을 최적화하기위한 몇 가지 팁을 함께 게시했습니다. 여기에서 확인하십시오 : CALayer Shadows