Swift blokları (animateWithDuration:animasyonlar:tamamlama:)
Sorun blokları Hızlı iş yaparak geçiriyorum. Burada çalışan bir örnek (tamamlanma blok olmadan)
UIView.animateWithDuration(0.07) {
self.someButton.alpha = 1
}
ya da alternatif olarak sondaki kapatma olmadan
UIView.animateWithDuration(0.2, animations: {
self.someButton.alpha = 1
})
ama tamamlanma blok eklemek için çalışıyorum bir kere bu işe yaramaz:
UIView.animateWithDuration(0.2, animations: {
self.blurBg.alpha = 1
}, completion: {
self.blurBg.hidden = true
})
Otomatik Tamamla beni completion: ((Bool) -> Void)?
ama o iş yapmak için nasıl emin oluyor. Ayrıca kapatma firar ile denedim ama aynı hata var:
! Could not find an overload for 'animateWithDuration that accepts the supplied arguments
CEVAP
animateWithDuration tamamlama, parametre bir parametre alan bir blok alır. N C blokları gibi hızlı, kapanması gereken parametreleri belirtmeniz gerekir:
UIView.animateWithDuration(0.2, animations: {
self.blurBg.alpha = 1
}, completion: {
(value: Bool) in
self.blurBg.hidden = true
})
Önemli kısım burada (value: Bool) in
. Bu kapatma Bool etiketli alır derleyici söyler 'value' ve void döndürür.
Eğer bir bool döndüren bir kapatma yazmak istiyorsan başvuru için, sözdizimi olacaktır
{(value: Bool) -> bool in
//your stuff
}
Swift süper Güncellemelerinden 6 yavaş...
Nasıl swift JSON dosyası ayrıştırılama...
Mercurial son tamamlama Geri Al...
Nasıl ilk tamamlama başvuru için?...
Nasıl Şeritleri kullanmadan yeni Swift...