2017-04-03 40 views
0

我想淡出最後5 PX一個UILabel的。標籤不能超過一行。 目前我有以下功能。淡出最後5 PX文本中的UILabel

func addFadeOut() { 
     let gradient = CAGradientLayer() 
     gradient.frame = self.bounds 
     gradient.colors = [self.theme.darkJungleGreenColor().cgColor, self.theme.darkJungleGreenColor().withAlphaComponent(0.1).cgColor] 

     gradient.startPoint = CGPoint.init(x: 0.95, y: 1) 
     gradient.endPoint = CGPoint.init(x: 1, y: 1) 
     self.layer.mask = gradient 
    } 

任何人都可以幫助我如何解釋開始和終點?

+0

添加5 px寬的半透明圖像。這是最簡單的選擇。 – Sulthan

回答

2

您可以計算從標籤的寬度和高度的起點和終點。

func addFadeOut() { 
     let gradient = CAGradientLayer() 
     gradient.frame = self.bounds 
     gradient.colors = [self.theme.darkJungleGreenColor().cgColor, UIColor.clear.cgColor] 

     //Get Height and width 
     var width = self.bounds.size.width 
     var height = self.bounds.size.height 

     //Calculate the start points and end points 
     var startPointX = (width-5)/width 
     var startPointY = (height/2)/height 
     var endPointX = 1 
     var endPointY = (height/2)/height 

     gradient.startPoint = CGPoint(x: startPointX, y: startPointY) 
     gradient.endPoint = CGPoint(x: endPointX, y: endPointY) 
     self.layer.mask = gradient 
    } 
+0

您的起點和終點不在0 - 1的範圍之間?正確嗎? – Steaphann

+0

否計算總是給出0到1範圍內的結果。 –

+0

模(%)給出了到1 –