ViewController.Swift'te bir noktadan diğerine animasyonlu bir kutu yapmayı başardım. Kutuyu kolayca döndürdüğünü düşündüm, bu yüzden kutu bir noktaya canlandırılacak ve ardından orijinal konumuna geri dönecek ve tekrar dönecektir. Nesneyi bir pozisyona taşımayı başardım ve "tamamla" da tekrar geri taşıdım, ama bu i döngü yapmaz. Bu nasıl başarılabilir?UIView.animateWithDuration hızlı döngü animasyonu
Ben bu işe yarayabilir diye düşündüm ama gerçekten bilmiyorum:
let boxmoves = [CGRect(x: 120, y: 220, width: 100, height: 100), CGRect(x: 120, y: 120, width: 100, height: 100)]
for boxmove in boxmoves {
coloredSquare.frame = boxmove
}
nasıl cihaz genişliğine göre ortalamak olabilir (ben dahil bazı matematik vardır varsayıyorum?)?
Kodum:
let coloredSquare = UIView()
coloredSquare.backgroundColor = UIColor.blueColor()
coloredSquare.frame = CGRect(x: 120, y: 120, width: 100, height: 100)
self.view.addSubview(coloredSquare)
// found repeate but this will not animate as I want.
//UIView.animateWithDuration(2.0, delay: 0.2, options: UIViewAnimationOptions.Repeat, animations: {
UIView.animateWithDuration(2.0, animations: {
coloredSquare.frame = CGRect(x: 120, y: 220, width: 100, height: 100)
}, completion: { finished in
UIView.animateWithDuration(2.0, animations: {
coloredSquare.frame = CGRect(x: 120, y: 120, width: 100, height: 100)
})
})
Vay, bu kadar kolaydı. Teşekkürler @Mazyod! Cihaz genişliğine göre nasıl merkezleneceğini biliyor musunuz? –
@JohanNdiyoLinnarsson Peki, tüm bu sabit kodlanmış değerleri kaldırmanız gerekir. Çerçeveyi istediğiniz boyuta ayarlamayı deneyin, ardından çerçeve yerine 'colorSquare.center' özelliğini canlandırın. Görünümde ortalamak için, 'coloredSquare.center = view.center' veya daha iyisi' coloredSquare.center = CGPoint (x: view.bounds.midX, y: view.bounds.midY) 'dır, – Mazyod
autolayout kullanarak "autoresizingMask" özelliğini esnek kenar boşluklarına ayarlamanız gerekir. – Mazyod