2011-09-27 110 views
0

我基本上希望我的UITableView實例中每個圖層的不透明度在前10個像素處「淡出」。不透明度漸變適用於CALayer?

有什麼辦法淡化CALayer(或更一般的UIView)的不透明度?它與使用CAGradientLayer添加陰影的效果相似,但是不會將表視圖的其他圖層與另一圖層一起覆蓋,而是會根據漸變對它們應用濾鏡以使其透明。

回答

2

是的,通過使用CALayermask屬性,但它效率相當低。通常,這種效果是通過在視圖頂部疊加從透明到背景顏色的漸變來實現的(但只有在知道背景是什麼的情況下才有效)。

+1

完美 - 謝謝!不幸的是,我的背景不是純色,而是動態圖像。我一次只能在屏幕上觀看一個視圖,但我會在發貨之前在樂器中查看它。 我不得不創建一個CALayer來保存淡入淡出的不透明CAGradient圖層和另一個普通CALayer以使其餘視圖可見,但它看起來太棒了! 再次感謝! –

+1

@AshFurrow:很高興聽到它的工作。 「面具」相對昂貴,但是當你需要它時,它往往會完成這項工作。如果您遇到性能問題,而且您沒有製作任何動畫,則可能需要查看「shouldRasterize」標誌。這可以幫助靜態內容在某些情況下表現更好。但是當然,如​​果你開始製作動畫,那麼效果不會很好。 –