正如我的標題所說,我想從第一行UITableView
左側滑動到右側,當用戶來到那個ViewController
時。輕掃UITableViewCell無觸摸
在我的ViewController
我有一個UITableView
,每行有兩個按鈕「More」和「Delete」動作。看下面的代碼
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return true
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if (editingStyle == UITableViewCellEditingStyle.delete) {
}
}
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let deleteButton = UITableViewRowAction(style: .normal, title: "Delete") { action, index in
// Edit Button Action
}
deleteButton.backgroundColor = UIColor.red
let editButton = UITableViewRowAction(style: .normal, title: "Edit") { action, index in
// Delete Button Action
}
editButton.backgroundColor = UIColor.lightGray
return [deleteButton, editButton]
}
所有的工作都很好。但我希望當最終用戶第一次登錄此ViewController
時,他們會通知有可用的滑動操作,以便他們執行此操作。
問題是:我怎樣才能左右自動刷第一行?
我做了什麼?
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let cell = posTblView.cellForRow(at: NSIndexPath(row: 0, section: 0) as IndexPath) as! POSUserTabelCell
UIView.animate(withDuration: 0.3, animations: {
cell.transform = CGAffineTransform.identity.translatedBy(x: -150, y: 0)
}) { (finished) in
UIView.animateKeyframes(withDuration: 0.3, delay: 0.25, options: [], animations: {
cell.transform = CGAffineTransform.identity
}, completion: { (finished) in
})
}
}
通過上面的代碼刷卡/移動單元格正在工作,但不顯示「刪除」和「更多」按鈕。
所以請引導我正確的方向。
您的方法似乎適合左右滑動。但是,我不確定內置按鈕是否可以像這樣突出顯示。你可以肯定的做法是在你的內容下面放置一個看起來像本地控件的UIView,做一些滑動操作來展示它們,並且將它們從單元格中移除/隱藏。看看這個答案:https://stackoverflow.com/questions/5301728/is-it-possible-to-programmatically-show-the-red-delete-button-on-a-uitableviewce – dirtydanee
你可以使用這個舊的框架: https://github.com/CEWendel/SWTableViewCell。然後在viewdidappear寫: [cell showRightUtilityButtonsAnimated:YES]; –
那麼,你的目標是讓第一行自動滑動,這樣你就可以看到編輯按鈕。是對的嗎? –