当我使用tapGesture时,我希望likeButton从视图外部飞到约束2。点按likelike按钮时,它会出现在我需要的位置,但是没有动画可以将其到达那里。关于动画,还有很多东西要学习。有什么帮助,谢谢!!目前,约束已设置为仅在视图外部-80处。
@objc func handleTapGesture(gestureReconizer: UITapGestureRecognizer) {
let p = gestureReconizer.location(in: messageTableView)
let indexPath = messageTableView.indexPathForRow(at: p)
let cellAnimate = messageTableView.dequeueReusableCell(withIdentifier: "customMessageCell", for: indexPath!) as! CustomMessageCell
UIView.animate(withDuration: 0.5) {
cellAnimate.likeButtonContraint.constant = 2
cellAnimate.layoutIfNeeded()
}
}
答案 0 :(得分:0)
代替
let cellAnimate = messageTableView.dequeueReusableCell(withIdentifier: "customMessageCell", for: indexPath!) as! CustomMessageCell
做
let cellAnimate = messageTableView.cellForRow(at:indexPath!) as! CustomMessageCell
由于dequeueReusableCell
返回了另一个单元格以供重用,而不是您期望的单元格位于您提供的indexPath上
//
let cellAnimate = messageTableView.cellForRow(at:indexPath!) as! CustomMessageCell
cellAnimate.likeButtonContraint.constant = 2
UIView.animate(withDuration: 0.5) {
cellAnimate.layoutIfNeeded()
}