2012-08-03 3 views
1

화면 전체를 드래그하는 CALayer가 있습니다. 레이어에 그림자가 필요하므로 하나를 만들고 비트 맵으로 래스터 화합니다. 섀도우가있는 래스터 화 된 버전이 그림자없이 이미지처럼 드래그 될 때 동일한 성능을 가지기를 기대했지만, 더 나 빠졌습니다. 이미지를 래스터 화하면 왜 더 나 빠지나요? 성능을 현저하게 저하시키지 않으면 서 그림자를 추가하는 더 좋은 방법이 있습니까?CALayer 래스터 화 성능 저하

layer.contents = (id) [UIImage imageNamed:[dict objectForKey:@"imageURI"]].CGImage; 
layer.shadowColor = [UIColor blackColor].CGColor; 
layer.shadowOpacity = .5; 
layer.shouldRasterize = YES; 
layer.rasterizationScale = [[UIScreen mainScreen] scale]; 

답변

2

의 CALayer 그림자를 사용하여, 당신은 shadowPath 속성을 사용한다 : 다음과 같이 나는 그림자와 내용을 만들 수 있습니다. 다음과 같이 사용하십시오 :

layer.shadowPath = [UIBezierPath bezierPathWithRect:layer.bounds].CGPath;