2014년 10월 29일 수요일

UIImageView에 그림자(Shadow) 적용하기

IB에서 UIImageView를 생성해서 그림자를 생성하기가 안된다.

찾아보니 UIImageView를 상속받아 drawRect에 구현하면 된다는 글이 있길레 해봤는데 안된다.

원인은...

Special Considerations
The UIImageView class is optimized to draw its images to the display. UIImageView will not call drawRect: a subclass. If your subclass needs custom drawing code, it is recommended you use UIView as the base class.

망할..그래도 이건 친절하게 설명이라도 써있네.ㅋㅋ

아무튼 UIView(UIImageView 제외한) 는 drawRect를 이용해서 그림자를 그리면 되겠다. 하지만 UIImageView는 안되니..다음과 같이 하면 된다.

- (void)awakeFromNib {
self.layer.shadowColor = [UIColor blackColor].CGColor;
self.layer.shadowOffset = CGSizeMake(5, 6);
self.layer.shadowOpacity = 0.5;
self.layer.shadowRadius = 1.0;
}

IB에서 생성을 했으면 awakeFromNib에서 해줘야 할 것이고, 직접 코드로 생성해줬다면, 초기화 하는 부분에서 해주면 될 것이다.

이렇게 하니까 잘 된다.

댓글 없음: