2016-06-07 10 views
1

Ich habe eine Tabellenansicht in einem View-Controller erstellt. Ich habe erfolgreich den Tisch versteckt und gezeigt. Es hat jedoch keine Animation, wenn es schließt und die Tabelle anzeigt. Ich möchte, dass es herausrutscht oder hineingleitet. Das Folgende ist mein Code.Schließen Sie die Tabellenansicht durch Klicken auf die Schaltfläche mit Animation (swift)

@IBAction func clickButtonAction(sender: AnyObject) { 
    UIView.animateWithDuration(10.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {() -> Void in 


    }) { (finished:Bool) -> Void in 
     if(self.tableView.hidden == true){ 
      self.tableView?.hidden = false 
     } 
     else{ 
      self.tableView.hidden = true 
     } 
    } 

} 

Antwort

1

Sie können die hidden Eigenschaft UIView nicht animiert. Sie müssen stattdessen die alpha-Eigenschaft zwischen 0,0 und 1,0 animieren. Sie machen Ihre Arbeit auch im Abschlussblock Ihrer Animation. Sie sollten es im animations Block tun. Ich habe auch den Code ein wenig aufgeräumt. Ich gehe davon aus, dass tableView als UITableView? deklariert wird, aber wenn es UITableView oder UITableView ist, können Sie die ? weglassen, wenn sie Zugriff auf:

@IBAction func clickButtonAction(sender: AnyObject) { 
    UIView.animateWithDuration(10.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {() -> Void in 
     if self.tableView?.alpha == 1.0 { 
      self.tableView?.alpha = 0.0 
     } 
     else { 
      self.tableView?.alpha = 1.0 
     } 
    }, completion: { (finished:Bool) -> Void in 

    }) 
} 

Hinweis: Sie nicht direkt möchten, können sich floating point math is hardalpha == 1.0, vergleichen. Stattdessen empfehle ich eine lokale Variable zu halten, dass Staat zu verfolgen verwenden, und dann Basis Ihres alpha ab dafür:

// Make sure this matches the initial hidden state of your table view. 
// So if your table view starts at alpha == 0.0, this should be true. 
private var tableViewHidden: Bool = false 

@IBAction func clickButtonAction(sender: AnyObject) { 
    tableViewHidden = !tableViewHidden 
    UIView.animateWithDuration(10.0, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {() -> Void in 
     if tableViewHidden { 
      self.tableView?.alpha = 0.0 
     } 
     else { 
      self.tableView?.alpha = 1.0 
     } 
    }, completion: { (finished:Bool) -> Void in 

    }) 
} 
+0

i in der Programmierung neu bin. Gibt es da ein Beispiel dafür ?? –

+0

Bearbeitet mit Beispielcode. –

+0

kann ich es herausschieben oder einschieben, anstatt auszufallen. Ich habe diesen Code angewendet und die Tabelle wird ausgeblendet, anstatt hinein und heraus zu schieben. –

Verwandte Themen