这就是我想要的,我有一个带有 3 个自定义单元格的表格 View 。每个单元格执行不同的功能,单元格 2 需要来自单元格 1 的信息,单元格 3 需要来自单元格 2 的信息。因此,为了使其更直观一点,我尝试在单元格 2 中执行单元格移动(从外部屏幕移动到单击单元格 1 中的按钮时在屏幕内(即滑入)。基本上,我试图在创建按钮时将单元格从外部移动到 View 内部。
不幸的是,这会崩溃,通常这种移动在正常情况下可以工作,但在 TableView 上会崩溃。
单元格显示后是否可以使用 CGAffine 进行移动?
这是我正在使用的功能,是为了方便使用而制作的。
func movementAnimation(duration:Double,X:CGFloat,Y:CGFloat,item:UIView)
{
UIView.animate(withDuration: duration) {
item.transform = CGAffineTransform(translationX: X, y: Y)
}
}
按下按钮时将 View 移动到显示区域的功能。这是在单元类内的按钮操作内完成的。
@IBAction func buttonAction(_ sender: Any) {
movementAnimation(duration: 0.5, X: 0, Y: 0, item: viewDate)
}
这基本上是一种滑入情况。
有没有办法解决这个问题,使这个 Action 不会崩溃?
最佳答案
因此,在深入研究之后,我找到了一种绕过此问题的方法。
我做了一个简单的通知来检查按钮何时被按下。关于细胞类别,
@IBAction func ActionPaymentOne(_ sender: Any) {
NotificationCenter.default.post(name:
Notification.Name("moveAnimation"), object: nil)
}
现在在 tableViewController 类上,我在 viewDidLoad() 上添加了这个
NotificationCenter.default.addObserver(self, selector:
#selector(self.moveAnimation(notification:)), name:
Notification.Name("moveAnimation"), object: nil)
现在我添加了这个功能
@objc func moveAnimation(notification: Notification)
{
let index = IndexPath(row: 1, section: 0)
let currentCell = Table.cellForRow(at: index)! as! PaymentsTableViewCell
movementAnimation(duration: 0.5, X: 0, Y: 0, item: currentCell.viewDate)
}
因为我知道哪个单元格,所以我简单地创建了一个静态索引值。如果有人想对任何随机单元格执行此操作,您可以通过从标签或按钮按下委托(delegate)获取单元格路径来完成此操作。
关于ios - 创建单元格后是否有对 uitableviewcell 执行动画/移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60182671/