2016-04-03 17 views
0

Zaten görüntü için düzeni yaptım. Yani herhangi bir CGPoint x ve y değerlerim yok. Storyboard picture Resimde gördüğünüz gibi, 5 daire ve bir ana daire yaptım. Kullanıcı bu uygulamayı açtıkça bu 5 çevreyi ana çemberin arkasından gelmek istiyorum. Çok fazla araştırma yaptım ve bahar animasyon yöntemini kullanabileceğimi keşfettim, çünkü fizik ile daha gerçekçi görünüyor. Ancak, sadece işe yaramadı.Hızlı yay animasyonunda bir görüntüye nasıl eklenir?

Önce çemberin merkezini değiştiriyorum1 ve ana çemberin arka tarafına gönderdim (işe yaramadı) Başarısızlık nedeniyle daire arkadan gelmiyor.

Dairenin konumunu neden değiştiremediğime emin değilim. Öyleyse ben zaten yerleşimi yaptım mı? = Self.mainCircle.center

UIView.animateWithDuration(0.5, delay: 0.5, usingSpringWithDamping: 0.9, initialSpringVelocity: 0.0, options: [] , animations: { 
     self.circle1.center = CGPointMake(160, 219) 
     }, completion: nil) 
} 

bana bu konuda yardım edin

@IBOutlet weak var mainCircle: UIButton! 
@IBOutlet weak var circle1: UIImageView! 



override func viewDidAppear(animated: Bool) { 

self.circle1.center:

İşte benim kodudur. Çok teşekkür ederim.

cevap

0

Seçenekler parametresini [] olarak ayarlayın, bu seçenek yay animasyonunuzda hiçbir seçeneğe olanak tanımayacaktır. viewDidLoad() yöntemin İçinde

self.circle1.center = self.mainCircle.center

: En animasyonlar için


, bu çizgiyi koydu. Ardından, yay animasyonunuzda, kodu, konumu sabit değerlere değil, mainCirle'a göreli konum kullanılarak hesaplanacak şekilde değiştirin. böylece gibi:

self.circle1.center = CGPointMake(self.mainCircle.center.x-75, self.mainCircle.center.x-75) 

Size daire ana çemberden olmak istersen yönde olmasını noktasını değiştirebilirsiniz.


Komple kodu:

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.circle1.center = self.mainCircle.center 
} 

override func viewDidAppear(animated: Bool) { 
    UIView.animateWithDuration(0.5, delay: 0.5, usingSpringWithDamping: 0.9, initialSpringVelocity: 0.0, options: [] , animations: { 
     self.circle1.center = CGPointMake(self.mainCircle.center.x-75, self.mainCircle.center.x-75) 
    }, completion: nil) 
} 
+0

Evet öyle. Çok teşekkür ederim. Ama hala nesneyi taşıyamam. Herhangi bir fikir? –

+0

Görünüm yüklendiğinde animasyon yapıyorsanız, viewDidLoad öğesinde görünmeyenden önce gerçekleşeceğinden, "viewDidLoad" yöntemini değil, "viewDidAppear" yönteminde animasyon yaptığınızdan emin olun. Bu işe yaramazsa daha fazla kod gösterebilirsin, örneğin onu çağırdığında ve kodunun geri kalanında? – brimstone

+0

Cevabınız için teşekkür ederiz. Neden işe yaramadığını anlamıyorum. Bütün kodu size gösterebilmem için soruyu düzenledim. Tekrar kontrol edebilir misin?Öncelikle, ana çemberin ardındaki tüm küçük daireleri ortalamak istiyorum ve kullanıcı uygulamayı açtığında, küçük dairelerin daha önce otomatik yerleştirme yaptığım orijinal yerlerine gitmesini istiyorum. Çok teşekkür ederim. –

0

incelemekte fayda Bahar animasyonlar basitleştirmek için gerçekten yararlı bir kütüphane var. Aşağıda indirebilirsiniz:

https://github.com/MengTo/Spring

uygulamalarıma içinde animasyonlar çok var ve bu gerçekten kolaylaştırır. Muhtemelen tüm çevreleri merkeze ayarlamak, daha sonra x, y değiştirmek ve animateTo() kullanmak isteyebilirsiniz.

İlgili konular