2011-09-27 5 views
0

기본적으로 내 UITableView 인스턴스의 모든 레이어의 불투명도가 상위 10 개 픽셀에서 "페이드 아웃"하고 싶습니다.불투명도 그라디언트가 CALayer에 적용 되나요?

CALayer (또는 더 일반적으로 UIView)의 불투명도를 페이드 아웃 할 방법이 있습니까? 그것은 CAGradientLayer와 함께 그림자를 추가하는 것과 비슷하지만 테이블 뷰의 다른 레이어를 다른 레이어로 덮는 대신 필터를 적용하여 그라디언트에 따라 투명하게 만듭니다.

답변

2

예, CALayermask 속성을 사용하지만 오히려 비효율적입니다. 일반적으로 이러한 종류의 효과는 투명도에서 배경색까지의 그라디언트를 뷰 위에 겹쳐서 수행됩니다 (배경이 무엇인지 알 경우에만 적용됩니다).

+1

완벽한 - 감사합니다! 불행히도 내 배경은 단색이 아니라 동적 인 이미지입니다. 한 번에 한 화면에서 하나의 화면에서만이 작업을 수행하고 있지만 출하 전에 Instruments에서 확인해 보겠습니다. 페이드를 위해 불투명도 CAGradient 레이어를 유지하려면 CALayer를 만들고 다른 뷰는 표시하려면 일반 CALayer를 만들어야했지만 환상적이었습니다! 다시 한번 감사드립니다. –

+1

@AshFurrow : 듣기가 좋았습니다. '가면 '은 비교적 비싸지 만, 필요할 때 그것을하는 경향이 있습니다. 성능상의 문제가 있고 아무 것도 움직이지 않으면'shouldRasterize' 플래그를 살펴 보는 것이 좋습니다. 정적 콘텐츠가 특정 상황에서 더 잘 수행되도록 도울 수 있습니다. 물론 애니메이트하는 경우에는 좋지 않을 것입니다. –

관련 문제