iT邦幫忙

2024 iThome 鐵人賽

DAY 17
0
Mobile Development

Swift大航道-啟航篇系列 第 17

swift 內建tableview函式-leadingSwipeActionsConfigurationForRowAt

  • 分享至 

  • xImage
  •  

昨天學習了從右邊滑到左邊的函式,今天來跟大家分享從左邊滑到右邊的喔

leadingSwipeActionsConfigurationForRowAt

程式碼如下:

func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
        //這邊創建了一個實例UIContextualAction,style是正常樣式
        //{ [self] (_,_, completionHandler) 這邊是閉包的開始,前面兩個參數是_可以忽略不看,最後一個completionHandler是操作完成後,要呼叫這個參數,並告訴系統已完成操作
        let editAction = UIContextualAction(style: .normal, title: "edit") { [self] (_,_, completionHandler) in self.button.setTitle("編輯", for: .normal)
            self.button.backgroundColor = UIColor.magenta
            
        //if indexPath.row < self.MessageArray.count 是用來檢查這個索引有沒有超出範圍
            if indexPath.row < self.MessageArray.count{
                self.edit_cell = self.MessageArray[indexPath.row]
                self.UserName.text = self.edit_cell?.Name
                self.tvtext.text = self.edit_cell?.Constent
                
                let edit_CurrenTime = self.edit_cell?.CurrenTime
                //打開資料庫
                let realm = try! Realm()
                //這邊從資料庫查找時間相同的資料,currenTime是抓取第一個符合條件的對象
                editCell_Time = realm.objects(MessageBoard.self).where{
                    $0.CurrenTime == edit_CurrenTime ?? ""
                }[0]
                
            }
            //刷新tableview內的資料
            self.tbview.reloadData()
            }
            //回傳一個UISwipeActionsConfiguration的實例,並搭配editAction的動作
            return UISwipeActionsConfiguration(actions: [editAction])
    }

大家可以仔細看程式裡面的註解喔!

結論

今天跟大家分享了tableview的內建函式並搭配realm資料庫做使用的實例,明天開始會跟大家分享怎麼做天氣api的專案喔!


上一篇
swift tableview內建函式-trailingSwipeActionsConfigurationForRowAt
下一篇
swift 開發專案-天氣API
系列文
Swift大航道-啟航篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言