UIButton в UITableViewCell переходит на reloadRowsAtIndexPath

#ios #swift #uitableview

#iOS #swift #uitableview

Вопрос:

Я сталкиваюсь с этой странной проблемой, когда в каждой ячейке моей таблицы есть только UIButton, когда я изменяю выбранное состояние, чтобы установить цвет заголовка на обычный, выбранный, он получает эффект скачка. Пока не удалось идентифицировать. Любая помощь приветствуется. Заранее спасибо.

Некоторый код для перезагрузки строк —

 `tableView.beginUpdates()
 tableView.reloadRowsAtIndexPaths(Array(selectedIndexPaths), withRowAnimation: .None)
 tableView.endUpdates()`
  

Чтобы установить titlecolor и titleimage в классе cell —

 override func awakeFromNib() {
    super.awakeFromNib()
    selectionButton.setTitleColor(UIColor(named: .SomeColor), forState: .Normal)
    selectionButton.setTitleColor(UIColor(named: .SomeColor), forState: .Selected)
    selectionButton.setImage(someimage, forState: .Normal)
    selectionButton.setImage(someimage, forState: .Selected
}
  

Вот как это выглядит

Комментарии:

1. На реальном устройстве?

2. некоторый код был бы полезен

3. Да, я тоже реальное устройство

Ответ №1:

Я думал сначала прокомментировать, но, похоже, для этого мне нужно иметь 50 очков репутации, так что вот оно.

Причина, по которой вы получаете такое поведение, может быть связана с настраиваемой высотой строки, которую вы устанавливаете. Если это так, вы можете предотвратить это, указав предполагаемую высоту для строк.