2016-10-27 1 views
0

Ich habe eine ViewController mit einer tableView und eine versteckte UIView.reloadData auf TableView und führen Sie eine UIView-Animation von LayoutIfNeeded bricht Layout

Wenn der Benutzer auf eine Schaltfläche tippen ich will:

  1. laden Sie die Tabelle
  2. präsentieren die verborgene Ansicht mit Autolayout

Also im Grunde den Code Animieren ist:

 self.tableView.reloadData() 
     bottomContsraint.update(offset: 50) 

     UIView.animate(withDuration: 0.6, 
         delay: 0.0, 
         usingSpringWithDamping: 0.9, 
         initialSpringVelocity: 0.4, 
         options: .curveEaseInOut, 
         animations: { 
         self.view.layoutIfNeeded() 
     }) { } 

das problem ist, dass meine zellen auch animieren, wenn die hiden ansicht sh ow up, ich denke, es ist wegen self.view.layoutIfNeeded()

können wir layoutIfNeeded() anrufen und auch self.tableView.reloadData() ohne verkabelte Animation auf den Tabellenansicht Zellen?

+0

Sie könnten wahrscheinlich 'self.tableView.layoutIfNeeded()' zuerst aufrufen, um zu verhindern, dass es während der Animation erneut ausgeführt wird. – Sulthan

+0

ist nicht self.view die UITableView auf einem UITableViewController? Ich denke, Sie verweisen möglicherweise auf die falsche Ansichtseigenschaft. –

Antwort

0

layoutIfNeeded Kaskaden für alle Unteransichten einer Ansicht. Daher sagt self.view.layoutIfNeeded() alles in Ihrem ViewController zu relayout. rufen Sie einfach layoutIfNeed in der versteckten Ansicht

Verwandte Themen