Swift - 选择时的 UITableView 单元格动画
Swift - UITableView Cell animation on selection
我正在使用 didSelectRow at 方法对 tableView 单元格选择进行动画处理,该方法正在运行。我的代码如下:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath)
UIView.animate(withDuration: 0.2, animations: {
cell!.transform = CGAffineTransform(scaleX: 0.97, y: 0.97)
}, completion: { finished in
UIView.animate(withDuration: 0.2) {
cell!.transform = .identity
}
})
}
我希望能够将其放入单元格的自定义 class 文件中,但不知道从哪里开始。这可能吗?
谢谢
我想你可以使用 func setSelected(_ :animated:)
首先,您必须创建 UITableViewCell
的子类。
假设我创建了一个Class名字TempTableViewCell
,在这个里面,我们确实有一个预定义函数override func setSelected(_ selected: Bool, animated: Bool)
。
此处 Selected 是单元格是否被选中的值。所以你可以在这个函数中使用你的代码,如下所示。
示例
class TempTableViewCell: UITableViewCell {
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
if selected{
UIView.animate(withDuration: 0.2, animations: {
self.transform = CGAffineTransform(scaleX: 0.97, y: 0.97)
}, completion: { finished in
UIView.animate(withDuration: 0.2) {
self.transform = .identity
}
})
}
}
}
并按照下面的代码在单元格中使用它,
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: String(describing: TempTableViewCell.self), for: indexPath)
return cell
}
我正在使用 didSelectRow at 方法对 tableView 单元格选择进行动画处理,该方法正在运行。我的代码如下:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath)
UIView.animate(withDuration: 0.2, animations: {
cell!.transform = CGAffineTransform(scaleX: 0.97, y: 0.97)
}, completion: { finished in
UIView.animate(withDuration: 0.2) {
cell!.transform = .identity
}
})
}
我希望能够将其放入单元格的自定义 class 文件中,但不知道从哪里开始。这可能吗?
谢谢
我想你可以使用 func setSelected(_ :animated:)
首先,您必须创建 UITableViewCell
的子类。
假设我创建了一个Class名字TempTableViewCell
,在这个里面,我们确实有一个预定义函数override func setSelected(_ selected: Bool, animated: Bool)
。
此处 Selected 是单元格是否被选中的值。所以你可以在这个函数中使用你的代码,如下所示。
示例
class TempTableViewCell: UITableViewCell {
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
if selected{
UIView.animate(withDuration: 0.2, animations: {
self.transform = CGAffineTransform(scaleX: 0.97, y: 0.97)
}, completion: { finished in
UIView.animate(withDuration: 0.2) {
self.transform = .identity
}
})
}
}
}
并按照下面的代码在单元格中使用它,
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: String(describing: TempTableViewCell.self), for: indexPath)
return cell
}