2011-01-16 3 views
5

나는 NSImageView이고 그림자를 추가하고 싶습니다. 프로그래밍 방식으로 시도해 보았습니다.NSImageView에 그림자 추가

NSShadow *shadow = [[[NSShadow alloc] init] autorelease]; 
[shadow setShadowBlurRadius:4.0f]; 
[shadow setShadowOffset:CGSizeMake(4.0f, 4.0f)]; 
[shadow setShadowColor:[NSColor blackColor]]; 

[view setShadow:shadow]; 

하지만 표시되지 않습니다. 어떤 아이디어? 감사.

+0

빈 NSImage (그려야하는 것과 같은 크기)를 만들고, 그것에 lockFocus를 설정하고, 그림자를 설정하고, 원본을 새 것으로 그리고 (unlockFocus) 그릴 수 있습니다. 나는 그 기술을 착색 용 이미지에 사용합니다. 그것은 그림자에 대해 작동 할 것이라고 보장 할 수 없습니다. – Richard

답변

9

그림자의 매개 변수를 설정해야합니다. 기본적으로 모두 0이므로보기에 눈에 띄는 효과가 없습니다.

-setShadowColor:, -setShadowRadius: 및 을 참조하십시오.

+0

위의 내용을 모두 적용하지 않으려 고 시도했습니다. 위의 샘플을 업데이트했습니다. –

+2

당신의 견해도'CALayer'에 의해지지되고 있습니까? 그렇지 않다면 그림자를 설정하기 전에'setWantsLayer :'(값이'YES' 인) 뷰를 보냄으로써 Core Animation backing을 활성화해야합니다. –

+0

@Jonathan : 그것은 제가 실제로 답변으로 게시하려고했던 것입니다. 'setShadow :'는 단순히 그림자 속성을 Core Animation 레이어에 복사하기 때문에보기는'CALayer '에 의해 뒷받침되어야합니다. 이는 인터페이스 빌더를 사용하여 뷰에 그림자를 적용하려는 경우에도 눈에.니다. – Joost