SORU
5 HAZİRAN 2014, PERŞEMBE


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
5 HAZİRAN 2014, PERŞEMBE


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
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Max Lee

    Max Lee

    18 AĞUSTOS 2006
  • optionalinfo

    optionalinfo

    29 EKİM 2005
  • TheRightTire

    TheRightTire

    14 EKİM 2009