小さくて美しいSwift&iOSチュートリアル03-BasicListEdit
2800 ワード
BasicViewEdit.gif
このチュートリアルでは、次の内容について説明します. Table Viewにドロップダウンリフレッシュ機能 を追加 Table Viewに編集機能 を追加 Table Viewに削除機能を追加 UIrefreshControlドロップダウン・リフレッシュ
応答関数の定義refreshTable()
編集機能の実装
Navigationbarの左上隅にeditボタンを追加TableView Controlを直接使用する場合は、次の文を直接使用して編集機能を完了できます.
Table ViewがViewControllerに基づいて実装されている場合は、左上隅editボタンのactionメソッドに次のコードを追加する必要があります.
削除機能の実装
DataSourceで実現する以下の方法は、isEdit=trueで各cellが表示する状態状態を設定する2つの選択肢がある.deleteのもう一つはinsert
また、Delegteでは、クリックに応答するための次の方法を実装します.
編集機能の実装
配列内の要素がtableviewと一致するように、DataSourceでは次の方法が実装されています.
これにより、リフレッシュ、削除、編集の機能が実現します.
このチュートリアルでは、次の内容について説明します.
var refreshControl: UIRefrshControl!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(refreshTable), for: .valueChanged)//
animalsTableView.refreshControl = refreshControl
}
応答関数の定義refreshTable()
func refreshTable(){
self.animalList = cloudAnimalList
animalsTableView.reloadData()//
refreshControl.endRefreshing() //
}
編集機能の実装
Navigationbarの左上隅にeditボタンを追加TableView Controlを直接使用する場合は、次の文を直接使用して編集機能を完了できます.
self.navigationItem.leftBarButtonItem = self.editButtonItem
Table ViewがViewControllerに基づいて実装されている場合は、左上隅editボタンのactionメソッドに次のコードを追加する必要があります.
@IBAction func touchButtonItem(_ sender: UIBarButtonItem) {
if let title = sender.title{
switch title{
case "Edit":
animalsTableView.setEditing(true, animated: true)
sender.title = "Done"
case "Done":
animalsTableView.setEditing(false, animated: true)
sender.title = "Edit"
default: break
}
}
}
削除機能の実装
DataSourceで実現する以下の方法は、isEdit=trueで各cellが表示する状態状態を設定する2つの選択肢がある.deleteのもう一つはinsert
func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
return UITableViewCellEditingStyle.delete
}
また、Delegteでは、クリックに応答するための次の方法を実装します.
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete{
animalList.remove(at: indexPath.row)
animalsTableView.deleteRows(at: [indexPath], with: .fade)
}else if editingStyle == .insert {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
編集機能の実装
配列内の要素がtableviewと一致するように、DataSourceでは次の方法が実装されています.
func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
animalList.insert(animalList.remove(at: sourceIndexPath.row), at: destinationIndexPath.row)
}
これにより、リフレッシュ、削除、編集の機能が実現します.