UITableView
の中に UIImageView
を入れていて、その UIImageView
に animationImages
を指定してアニメーションを表示している時、テーブルのセルを選択するとアニメーションが止まってしまう。
解決法
setSelected
, setHighlighted
をオーバーライドしてその中でアニメーションを再開する。
class MyCell: UITableViewCell {
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
restartAnimatingIfNeeded()
}
override func setHighlighted(_ highlighted: Bool, animated: Bool) {
super.setHighlighted(highlighted, animated: animated)
restartAnimatingIfNeeded()
}
func restartAnimatingIfNeeded() {
if imageView.animationImages != nil {
imageView.startAnimating()
}
}
}
少々無理やりな気がするけど…あと最初のフレームから再生されてしまうのも気になる…