2011-02-03 3 views
2

저는 UIView를 가지고 있는데, 아래 부분적으로 페이드하고 싶습니다. 기본적으로 알파 값을 줄이면 UIView가 더 내려갑니다. 따라서 UIView의 맨 위가 완전히 보이고 맨 아래 부분의 알파 값은 0입니다.UIView를 페이드 아웃 하시겠습니까?

아무도이 작업을 수행하는 방법에 대한 제안이 있습니까?

답변

2

CALayer에는 mask이라는 속성이 있습니다.이 속성은 정확하게 이러한 종류의 효과를 내기 위해 디자인되었습니다. 수퍼 레이어가없는 마스크에 다른 CALayer를 할당하면 첫 번째 CALayer를 합성 할 때 두 번째 CALayer의 알파 채널이 사용됩니다.

마스크 속성을 사용하면 성능이 크게 저하되므로주의해야합니다.

+0

그래서 마스크를 사용하여 CALayer 하단의 알파 값을 어떻게 변경합니까? –

+0

알파 채널에 그라디언트가 포함 된 이미지를 만듭니다. 이 이미지를 페이드 아웃하려는 레이어와 동일한 크기의 새로운 레이어의 contents 속성으로 지정합니다. 그런 다음이 새 레이어를 원래 레이어의 마스크로 지정하십시오. –

+0

이 뷰 뒤에있는 것은 모두 사라집니다. 그렇지 않습니까? 기본적으로 내가 여기에서 만들려고 UIImageView 아래 반영입니다. 나는 이미 그 자리에 반사를 가지고 있지만, 내가 내려가는 것을 더 멀리 내려가고 싶다. 이미지는 일반적으로 투명한 PNG이므로 그라디언트를 추가하면 백그라운드가 사라질 수도 있습니다. –

관련 문제