Анимация ячейки табличного представления при удалении строки в swift - PullRequest
0 голосов
/ 10 ноября 2019

В ячейке табличного представления у меня есть две кнопки (кнопка «Нравится» и «Не нравится»). При нажатии любой кнопки ячейка будет удалена с анимацией. Но я испытываю неожиданную анимацию. Есть ли рекомендованная сторонняя библиотека? Еще одна вещь, для тех двух кнопок, которые я хочу, одна должна анимироваться слева направо, а другая справа налево.

class TipInCellAnimator {
  class func animate(cell:UITableViewCell) {
    let view = cell.contentView
    let rotationDegrees: CGFloat = -150.0
    let rotationRadians: CGFloat = rotationDegrees *
        (CGFloat(Double.pi)/180.0)
    let offset = CGPoint(x: -20, y: -20)
    var startTransform = CATransform3DIdentity
    startTransform = CATransform3DRotate(CATransform3DIdentity,
                                         rotationRadians, -45.0, -45.0, 1.0)
    startTransform = CATransform3DTranslate(startTransform,
                                            offset.x, offset.y, 0.0) // 4
    view.layer.transform = startTransform
    view.layer.opacity = 0.4
    UIView.animate(withDuration: 8.0) {
        view.layer.transform = CATransform3DIdentity
        view.layer.opacity = 1
    }
}
}


@objc func userLikeButtonWasTappaed(sender: UIButton){

UIView.animate(withDuration: 0.6,
               animations: {
                sender.transform = CGAffineTransform(scaleX: 0.6, y: 0.6)
},
               completion: { _ in
                UIView.animate(withDuration: 0.6) {
                    sender.transform = CGAffineTransform.identity
                }
})

guard let indexPath = tableView.indexPathForRow(at: sender.convert(sender.frame.origin, to: tableView)) else {
    return
}

let cell = tableView.cellForRow(at: indexPath) as? MatchingUsersTVCell


let tag = sender.tag
let userid = userIdArray[tag]

//Remove the user data from the array for the perticular indexpath
totalScoreArray.remove(at: tag)
fullAdressArray.remove(at: tag)
modelArray.remove(at: tag)
userIdArray.remove(at: tag)
modelNameArray.remove(at: tag)


self.tableView.deleteRows(at: [indexPath], with: .right)

let uid: Int = UserDefaults.standard.value(forKey: "User_Id") as! Int
let accessToken: String = UserDefaults.standard.value(forKey: "access_token") as! String

apiRequest.likeTheUser(uid, userid, accessToken) { (likedUser) in  

}
}


func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {

    let cell = (tableView.cellForRow(at: indexPath) as? MatchingUsersTVCell)!
    // your code

    TipInCellAnimator.animate(cell: cell)

}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...