Как прокрутить UITableView при изменении высоты?

func keyboardWillShow(sender: NSNotification) {
        let duration = sender.userInfo![UIKeyboardAnimationDurationUserInfoKey] as! Double
        let curve = sender.userInfo![UIKeyboardAnimationCurveUserInfoKey] as! UInt

        let info: NSDictionary = sender.userInfo!
        let value: NSValue = info.valueForKey("UIKeyboardFrameEndUserInfoKey") as! NSValue
        let keyboardSize: CGSize = value.CGRectValue().size
        
        UIView.animateWithDuration(duration, delay: 0, options: UIViewAnimationOptions(rawValue: curve), animations: {
            
            self.contentBottomConstrains.constant = keyboardSize.height
            self.tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: self.messages.count-1, inSection: 0), atScrollPosition: UITableViewScrollPosition.Top, animated: true)
            self.view.layoutIfNeeded()

            }, completion: nil)
        
    }

Данный код изменяет отступ снизу от супервьюхи, поднимая поле ввода на высоту клавиатуры, но не хочет прокручивать таблицу вниз. Помогите, пожалуйста, найти и исправить ошибку.
  • Вопрос задан
  • 336 просмотров
Пригласить эксперта
Ответы на вопрос 1
maestrro712
@maestrro712
 iOS Developer
Перенесите код
self.tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: self.messages.count-1, inSection: 0), atScrollPosition: UITableViewScrollPosition.Top, animated: true)

в completionBlock.
Сейчас у вас на момент вызова таблица имеет еще старые размеры. В то же время scrollToRow.... самостоятельно создаст анимацию.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы