jat*_*jat 2 animation transform uitableview uiviewanimation ios
我正在使用 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
}
})
}
Run Code Online (Sandbox Code Playgroud)
我希望能够将其放入单元的自定义类文件中,但不知道从哪里开始。这可能吗 ?
谢谢
我认为你可以使用 func setSelected(_ :animated:)
首先,您必须创建 的子类UITableViewCell。
假设我创建了一个类名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
}
})
}
}
}
Run Code Online (Sandbox Code Playgroud)
要在单元格中使用它,请遵循以下代码,
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: String(describing: TempTableViewCell.self), for: indexPath)
return cell
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2211 次 |
| 最近记录: |