이미지 뷰에 그림자 효과를 주기위해 알아본 결과 CALayer 의 Shadow 속성을 사용하면 원하는 형태의 그림자를 만들수 있다.

CALayer * layer = self.imageView.layer;
       
layer.backgroundColor = COLOR_BLACK.CGColor;
layer.shadowOffset = CGSizeMake(10, 10);
layer.shadowRadius = 10.0f;
layer.shadowColor = COLOR_BLACK.CGColor;
layer.shadowOpacity = 0.6f;
[self.layer addSublayer:layer];

imageView에서 layer 프로퍼티를 사용하여 Shadow효과를 입력한 뒤 imageView의 부모 뷰에 AddSubView를 하게되면 그림자 효과를 얻을 수 있다.

ScrollView와 같이 사용하게 되면 줌/팬 이벤트와 동시에 사용할 수 있다.

ScrollView 같은 경우 layoutSubview 메소드에서 이미지뷰의 위치를 정하게 되는데 이때 위의 코드를 함께 넣어주면 그림자 효과를 적용할수 있다.

- (void)layoutSubviews
{
    [super layoutSubviews];
   
    // center the image as it becomes smaller than the size of the screen
   
    CGSize boundsSize = self.bounds.size;
    CGRect frameToCenter = self.imageView.frame;
    frameToCenter.size.width = round(frameToCenter.size.width*100)/100;
    frameToCenter.size.height = round(frameToCenter.size.height*100)/100;
   
    // center horizontally
    if (frameToCenter.size.width < boundsSize.width) {
       
        frameToCenter.origin.x = (boundsSize.width - frameToCenter.size.width) / 2;
    }else {
       
        frameToCenter.origin.x = 0.1;
    }
   
    // center vertically
    if (frameToCenter.size.height < boundsSize.height) {
       
        frameToCenter.origin.y = (boundsSize.height - frameToCenter.size.height) / 2;
    } else {
       
        frameToCenter.origin.y = 0.1;
    }
   
    self.imageView.frame = frameToCenter;
   
    if(self.shadowState == YES){
        CALayer * layer = self.imageView.layer;
       
        layer.backgroundColor = COLOR_BLACK.CGColor;
        layer.shadowOffset = CGSizeMake(10, 10);
        layer.shadowRadius = 10.0f;
        layer.shadowColor = COLOR_BLACK.CGColor;
        layer.shadowOpacity = 0.6f;
       
        [self.layer addSublayer:layer];
    }
}

'iOS' 카테고리의 다른 글

UIButton Title 위치 정하기  (0) 2011.10.26
UIButon 이벤트 처리  (0) 2011.10.25
UIImage 회전 관련 링크  (0) 2011.10.11
simbolicatecrash 위치  (0) 2011.10.06
SimpleURLConnections ios 5 문제 해결  (0) 2011.09.28

+ Recent posts