2016-10-27 3 views
0

У меня есть ViewController с tableView и скрытым UIView.reloadData on TableView и выполнить анимацию UIView LayoutIfNeeded разрывы макета

Когда пользователь нажмите на кнопку Я хочу:

  1. перезагрузить таблицу
  2. представить скрытый вид с анимировать Autolayout

Так в основном код является:

 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() 
     }) { } 

проблема заключается в том, что мои клетки также оживляют, когда открывается вид hiden sh я думаю, это из-за self.view.layoutIfNeeded()

можно назвать layoutIfNeeded(), а также self.tableView.reloadData() без проводной анимации на ячейках таблицы?

+0

вы, вероятно, сначала можете вызвать 'self.tableView.layoutIfNeeded()', чтобы он не запускался снова во время анимации. – Sulthan

+0

не является self.view UITableView на UITableViewController? Я думаю, что вы можете ссылаться на неправильное свойство вида. –

ответ

0

layoutIfNeeded каскады для всех представлений видов. Поэтому self.view.layoutIfNeeded() сообщает все в вашем viewController для ретрансляции. просто вызовите layoutIfNeed на скрытый вид