2016-10-28 2 views
0

У меня есть табличное представление, и когда я получаю сообщение, оно перезагружается, а затем я хочу, чтобы ячейка, получившая сообщение, изменила свой цвет фона на секунду, а затем изменила вернуться к предыдущему цвету (с или без замирания в/из)Как затухать в/из цвета фона tableviewcell с Swift

Я знаю, какая ячейка получила сообщение с этим кодом:

if changeCell == indexPath.row { 

     cell.viewCell.backgroundColor = UIColor.red 

    } 

viewCell Есть мнение, я положил в ячейку, чтобы изменить цвет фона ячейка легче

Я ищу a lo t, чтобы узнать это, но каждое решение началось с UIView.animate .... когда я выразился, это изменило цвет вида вне моего стола.

+0

Вы нас ing xcode 8 и swift 3.0? –

+0

@ ХиманшуМорадия да –

ответ

2

Семейство методов UIView animate - это то, что вы хотите.

let oldColor = cell.viewCell.backgroundColor = 
    UIView.animate(withDuration: 0.5, animations: { 
     cell.viewCell.backgroundColor = = UIColor.red 
     }, completion: { _ in 
      UIView.animate(withDuration: 0.5) { 
       cell.viewCell.backgroundColor = oldColor 
      } 
    }) 
+0

Привет спасибо за ответ, но все ячейки исчезают в/из –

0

Добавить эти параметры для анимации:

  • UIViewAnimationOptions.transitionCrossDissolve
  • UIViewAnimationOptions.allowAnimatedContent

Пример:

fileprivate var color1 = UIColor.clear 
fileprivate var color2 = UIColor.red 
fileprivate func animateCell(_ cell: UITableViewCell) { 

    UIView.animate(withDuration: 1.0, delay: 0.0, options: [.transitionCrossDissolve, .allowAnimatedContent], animations: { 
     cell.contentView.backgroundColor = self.color2 
    }) { (_) in 
     UIView.animate(withDuration: 1.0, animations: { 
      cell.contentView.backgroundColor = self.color1 
     }) 
    } 

} 
Смежные вопросы