2014-04-16 11 views

risposta

6

vi suggerisco di utilizzare il controllo di luccichio di Grant Paul, perché fa proprio questo.

https://github.com/facebook/Shimmer

example

+1

questo non è esattamente come la slitta di iPhone per sbloccare l'effetto, che ha la forma ovale o effetto a forma di diamante –

+0

Ehi, per favore, puoi raccomandare qualcos'altro meglio di questo. –

+0

Finn Gaida dammi il tuo id, ti invierò il codice, quello che sto cercando esattamente ma non farlo correttamente. –

2

aggiornamento con etichetta scintillante rapida, visualizzare ecc ...

import UIKit 
import QuartzCore 

class ViewController: UIViewController { 

    @IBOutlet var testLabel: UILabel! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.testLabel.startShimmering() 
    } 
} 

extension UIView { 
    func startShimmering() { 
     //  let light = UIColor.init(white: 0, alpha: 0.1).cgColor 
     let light = UIColor(red: 0, green: 0, blue: 0, alpha: 0.1).cgColor 
     let dark = UIColor.black.cgColor 

     let gradient: CAGradientLayer = CAGradientLayer() 
     gradient.colors = [dark, light, dark] 
     gradient.frame = CGRect(x: -self.bounds.size.width, y: 0, width: 3*self.bounds.size.width, height: self.bounds.size.height) 
     gradient.startPoint = CGPoint(x: 0.0, y: 0.5) 
     gradient.endPoint = CGPoint(x: 1.0, y: 0.525) 
     gradient.locations = [0.4, 0.5, 0.6] 
     self.layer.mask = gradient 

     let animation: CABasicAnimation = CABasicAnimation(keyPath: "locations") 
     animation.fromValue = [0.0, 0.1, 0.2] 
     animation.toValue = [0.8, 0.9, 1.0] 

     animation.duration = 1.5 
     animation.repeatCount = HUGE 
     gradient.add(animation, forKey: "shimmer") 


    } 

    func stopShimmering() { 
     self.layer.mask = nil 
    } 

} 
Problemi correlati