我想要实现类似于Appstore的动画,在其中单击该项目,然后将该项目缩放到较小的大小,然后释放该项目,它将恢复到其原始大小。
在UIView
上缩放动画效果很好。
首先,如果我对UITableviewCell
本身执行相同的缩放动画,那么我得到了想要的动画,但是它在后面创建了彩色背景,这不是我想要的结果。
其次,如果我在contentView
的{{1}}上执行相同的动画,则会使动画混乱。这不是我期望的。
1。在contentView上
UITableviewCell
2。On Cell本身
func tableView(_ tableView: UITableView, didHighlightRowAt indexPath: IndexPath) {
debugPrint("did hightlight")
let cell = tableView.cellForRow(at: indexPath) as? RestaurantTVC
UIView.animate(withDuration: 0.75) {
cell?.contentView.transform = CGAffineTransform(scaleX: 0.9, y: 0.9)
}
}
func tableView(_ tableView: UITableView, didUnhighlightRowAt indexPath: IndexPath) {
debugPrint("unhightlight")
let cell = tableView.cellForRow(at: indexPath) as? RestaurantTVC
UIView.animate(withDuration: 0.3) {
cell?.contentView.transform = CGAffineTransform.identity
}
}
3。在子视图“ viewShadow”上
func tableView(_ tableView: UITableView, didHighlightRowAt indexPath: IndexPath) {
debugPrint("did hightlight")
let cell = tableView.cellForRow(at: indexPath) as? RestaurantTVC
UIView.animate(withDuration: 0.75) {
cell?.transform = CGAffineTransform(scaleX: 0.9, y: 0.9)
}
}
func tableView(_ tableView: UITableView, didUnhighlightRowAt indexPath: IndexPath) {
debugPrint("unhightlight")
let cell = tableView.cellForRow(at: indexPath) as? RestaurantTVC
UIView.animate(withDuration: 0.3) {
cell?.transform = CGAffineTransform.identity
}
}