iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
Mobile Development

ios前端開發學習系列 第 23

【Day23】認識如何使用tableView(二)刪除動畫

  • 分享至 

  • xImage
  •  

刪除動畫

func tableView(_ tableView: UITableView, 
               trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {

    // 創建一個 "移除" 操作
    let removeAction = UIContextualAction(style: .normal, title: "移除") { (_, _, completionHandler) in

        // 移除數據(這裡簡單地使用一個數組作為示例)
        self.clockArray.remove(at: indexPath.row)

        // 刪除行並添加刪除動畫
        tableView.deleteRows(at: [indexPath], with: .automatic)
        
        // 完成操作
        completionHandler(true)
    }
    
    // 設定操作的背景顏色
    removeAction.backgroundColor = UIColor.red

    // 返回配置
    return UISwipeActionsConfiguration(actions: [removeAction])
}

更多內容

常見的刪除動畫選項:

  • .automatic: 根據上下文自動選擇最佳動畫。
  • .fade: 用淡出效果刪除行。
  • .right: 行從右側滑出。
  • .left: 行從左側滑出。
  • .top: 行從頂部滑下。
  • .bottom: 行從底部滑上。

範例

// 使用淡出效果刪除第 1 行(索引為 0)
tableView.deleteRows(at: [IndexPath(row: 0, section: 0)], with: .fade)

// 使用從右側滑出的效果刪除第 2 行(索引為 1)
tableView.deleteRows(at: [IndexPath(row: 1, section: 0)], with: .right)

// 使用從左側滑出的效果刪除第 3 行(索引為 2)
tableView.deleteRows(at: [IndexPath(row: 2, section: 0)], with: .left)

// 使用從頂部滑下的效果刪除第 4 行(索引為 3)
tableView.deleteRows(at: [IndexPath(row: 3, section: 0)], with: .top)

// 使用從底部滑上的效果刪除第 5 行(索引為 4)
tableView.deleteRows(at: [IndexPath(row: 4, section: 0)], with: .bottom)

這樣,你可以根據應用程式的需求選擇最適合的刪除動畫。記得先從你的數據源中刪除相應的數據,然後再呼叫 deleteRows(at:with:) 方法來更新 UI。


上一篇
【Day22】認識如何使用tableView(一)右滑左滑
下一篇
【Day24】認識如何使用個性化圖示
系列文
ios前端開發學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言