iT邦幫忙

2024 iThome 鐵人賽

DAY 18
0
Mobile Development

少年K的Swift奇幻漂流記系列 第 18

Day18 Swift MessageBoard App 實作 Part 4:TableView 右滑

  • 分享至 

  • xImage
  •  

定義右滑編輯的動作

右滑動作的處理與左滑類似,只是這次我們使用 leadingSwipeActionsConfigurationForRowAt 來實現。當使用者右滑時,會顯示 "編輯" 選項,點擊後會彈出一個編輯視窗讓使用者修改訊息的內容。

// leadingSwipeActionsConfigurationForRowAt 是用來處理表格右滑的動作
func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {

    // 定義一個編輯的動作,當使用者右滑時會顯示 "編輯" 選項
    let editAction = UIContextualAction(style: .normal, title: "編輯") { 
        [weak self] (_, _, completionHandler) in
        
        // 使用 weak self 防止循環引用
        guard let self = self else { return }
        
        // 根據當前滑動的列,獲取對應的訊息
        let message = self.messageArray[indexPath.row]
        
        // 編輯該訊息並更新表格
        self.editMessage(message, at: indexPath)
        
        // 操作完成後,告訴系統這個動作已經處理完畢
        completionHandler(true)
    }
    // 設定編輯動作的背景顏色為藍色
    editAction.backgroundColor = .blue

    // 將編輯動作加入配置中
    let configuration = UISwipeActionsConfiguration(actions: [editAction])
        
    // 設定當使用者完全滑動時,自動執行第一個動作(編輯)
    configuration.performsFirstActionWithFullSwipe = true
    return configuration
}

結論

定義完成之後,我們還需要實作裡面的編輯訊息的function,會在下一篇教。


上一篇
Day17 Swift MessageBoard App 實作 Part5:左滑內的刪除邏輯
下一篇
Day 19 Swift MessageBorad App 實作 Part5 : 右滑內的編輯邏輯
系列文
少年K的Swift奇幻漂流記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言