2016-04-08 22 views
0

İki renk arasında bir düğmeyi silmek için bir animasyon kullanıyorum ve düğmeye basıldığında mevcut rengini alması gerekiyor. aynı sonucu bana her seferinde, o belirli bir anda değil rengini verenSwift'deki bir animasyon sırasında UIView rengini mi alıyorsunuz?

UIView.animateWithDuration(speed, delay: 0.0, options:[UIViewAnimationOptions.Repeat, UIViewAnimationOptions.Autoreverse, UIViewAnimationOptions.AllowUserInteraction, UIViewAnimationOptions.CurveEaseOut], animations: { 
      targetView.layer.backgroundColor = self.randomColors(40).CGColor 
      targetView.layer.backgroundColor = self.randomColors(250).CGColor 

      }, completion: nil) 

targetView.layer.backgroundColor kullanarak renk Okuma:

İşte animasyon kod. Ekrandaki belirli bir pikselin rengini elde etmek için birkaç işlev denedim ya da hiçbir zaman aynı renkten geri dönüyorlar.

Düğmeye basıldıktan sonra animasyonun devam etmesi gerekmiyor, sadece düğmeye basıldığı noktada rengi almam gerekiyor.

Herhangi bir yardım harika olurdu, teşekkürler!

cevap

1

Şu anda çalışan animasyonlar da dahil olmak üzere belirli bir katmanın ekran durumu hakkında bir yaklaşım elde etmek için presentationLayer numaralı telefonu kullanabilirsiniz. İsteğe bağlı bir AnyObject döndürür. Bu nedenle, düzgün şekilde paketlemediğinizden emin olmanız gerekir. Örneğin

: Bu dönen tabaka kopya olduğunu

if let presentationLayer = targetView.layer.presentationLayer() as? CALayer { 
    let currentBackgroundColor = presentationLayer.backgroundColor 
} 

Not - ve bu nedenle kendisine herhangi bir değişiklik başka bir yerde yansıtılmaz.

+0

Teşekkür ederiz! Tam olarak peşimdeydim. Çok takdir edildi. – Stephen

+0

@Stephen, yardımcı olmaktan mutluluk duyuyor :) – Hamish

İlgili konular