У меня есть UITableViewCell с UIImageView. Когда пользователь нажимает на ячейку в моем табличном представлении, вызывается cell.isExpanded.toggle()
, который поворачивает изображение.
Сейчас он вращается от 0 до 180 по часовой стрелке, но при повторном нажатии поворачивается на 180 до 0, также по часовой стрелке.
Как заставить его вращаться на 180 против 0 против часовой стрелки, если значение равно false?
class TVCell: UITableViewCell {
var isExpanded = false {
didSet {
rotateImage(isExpanded)
}
}
let iv = UIImageView()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
addSubview(iv)
iv.center.x = 33
iv.center.y = 6
iv.frame.size = CGSize(width: 30, height: 30)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func rotateImage(_ val: Bool) {
UIView.animate(withDuration: 0.2, delay: 0, options: .curveEaseInOut, animations: {
if val {
self.iv.transform = CGAffineTransform(rotationAngle: .pi)
} else {
self.iv.transform = .identity
}
}, completion: nil)
}
}