iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 15
0
Software Development

挑戰 30天內送審一支APP 系列 第 15

如何刪除一個列 (w/ UITableViewDataSource) ( D day + 14 )

  • 分享至 

  • xImage
  •  

在 Apple Developer 中的 UITableViewDataSource 中可以發現官方文件已經有提示開發者要使用何種”方法” 來製作 “ Delete “ 的功能。

  1. 因此我們先加這個功能進到Cell中
override func tableView(_ tableView: UITableView, commit : editingStyel: UITableViewCellEditingStyle, forRowAt : IndexPath) {
 }

  1. 接下來我們要嘗試刪除user欲刪除的資料 (array)
    必須要參考 " remove(at:) "

以及 " editingStyel "

 //Delete data form the array
        if editingStyle == .delete {
            restaurantNames.remove(at: indexPath.row)
            restaurantLocations.remove(at: indexPath.row)
            restaurantTypes.remove(at: indexPath.row)
            restaurantImages.remove(at: indexPath.row)
            }
  1. 再來就是將更新過後的資料(array)重新顯示在View,我們會用到 " reloadData() "
tableView.reloadData()

或者也可以使用 " deleteRow(at:with:) "

//tableView.reloadData()
        tableView.deleteRows(at: [indexPath], with:.fade)

  1. 使用 " reloadDate() " 畫面會停在原本的位置,不會整個螢幕捲到第一個 cell 喔!!

上一篇
UIAlertController 與 tableview 之互動 (四)( D day + 13 )
下一篇
Segue 與 Navigation Controller (一) ( D day + 15 )
系列文
挑戰 30天內送審一支APP 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
海綿寶寶
iT邦大神 1 級 ‧ 2018-01-03 18:39:53

請教一個問題
範例畫面大概可以顯示9筆/10筆資料
如果資料有30筆
畫面往下捲
刪掉第15筆
tablview reloadData 之後
畫面會「停」在原來的地方
還是會「捲到最頂端」
/images/emoticon/emoticon41.gif

0
吳晉榮
iT邦新手 5 級 ‧ 2018-01-05 10:58:35

第五點應該是reloaddata吧?

我要留言

立即登入留言