我见过一些应用程序在用户加载 tableView 时实现了动画,显示他们可以在单元格上向左滑动。它显示正在滑动的单元格然后快速关闭,以便用户可以做他们想做的事。
我搜索了一些预先存在的库,但没有找到。
我可以以编程方式滑动单元格吗?因此在 viewDidLoad 上调用它(或出现)?
我见过一些应用程序在用户加载 tableView 时实现了动画,显示他们可以在单元格上向左滑动。它显示正在滑动的单元格然后快速关闭,以便用户可以做他们想做的事。
我搜索了一些预先存在的库,但没有找到。
我可以以编程方式滑动单元格吗?因此在 viewDidLoad 上调用它(或出现)?
在 Swift 中,您可以执行类似的操作,但是,这不会显示通常通过在 UITableViewcell 上向左滑动来显示的底层编辑操作。它只动画滑动动作
fileprivate func showSwipeAction()
{
let animation = CABasicAnimation(keyPath: "position")
animation.duration = 0.08
animation.repeatCount = 1
animation.autoreverses = true
animation.speed = 0.30
let fromPoint:CGPoint = CGPoint(x: self.center.x, y: self.center.y)
animation.fromValue = NSValue(cgPoint: fromPoint)
let toPoint:CGPoint = CGPoint(x: self.center.x - 50, y: self.center.y)
animation.toValue = NSValue(cgPoint: toPoint)
self.setEditing(true, animated: true)
self.layer.add(animation, forKey: "position")
}
我绝对在我面前第二个答案。
为了使它更真实,这里是我对动画的实现:
if let cell = tableView.cellForRow(at: IndexPath(row: 0, section: 0))
{
let favouriteView = createFakeFavouriteAction(frame: cell.frame)
tableView.insertSubview(favouriteView, belowSubview: cell)
CATransaction.begin()
let animation = CABasicAnimation(keyPath: "position")
animation.duration = 0.08
animation.repeatCount = 1
animation.autoreverses = true
animation.speed = 0.3
let fromPoint: CGPoint = CGPoint(x: cell.center.x, y: cell.center.y)
animation.fromValue = NSValue(cgPoint: fromPoint)
let toPoint: CGPoint = CGPoint(x: cell.center.x - 75, y: cell.center.y)
animation.toValue = NSValue(cgPoint: toPoint)
CATransaction.setCompletionBlock {
favouriteView.removeFromSuperview()
}
cell.setEditing(true, animated: true)
cell.layer.add(animation, forKey: "position")
}
现在,我可以想象,如果您有多个 UITableViewRowAction,那么您想在单元格下添加多个视图,并且您还想为它们设置动画。我的实现只是让用户知道这个单元格是可滑动的简单方法。