diff --git a/CoreStoreDemo/CoreStoreDemo/Base.lproj/Main.storyboard b/CoreStoreDemo/CoreStoreDemo/Base.lproj/Main.storyboard
index 71b7f7d..3805cbc 100644
--- a/CoreStoreDemo/CoreStoreDemo/Base.lproj/Main.storyboard
+++ b/CoreStoreDemo/CoreStoreDemo/Base.lproj/Main.storyboard
@@ -682,6 +682,9 @@
+
+
+
@@ -900,7 +903,7 @@
-
+
@@ -961,6 +964,9 @@
+
+
+
@@ -1170,4 +1176,7 @@
+
+
+
diff --git a/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ListObserverDemoViewController.swift b/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ListObserverDemoViewController.swift
index 9eb2555..72daae2 100644
--- a/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ListObserverDemoViewController.swift
+++ b/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ListObserverDemoViewController.swift
@@ -12,7 +12,32 @@ import CoreStore
// MARK: - ListObserverDemoViewController
-class ListObserverDemoViewController: UITableViewController {
+final class ListObserverDemoViewController: UITableViewController {
+
+ // MARK: - EditableDataSource
+
+ final class EditableDataSource: DiffableDataSource.TableView {
+
+ override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
+
+ switch editingStyle {
+
+ case .delete:
+ let palette = ColorsDemo.palettes[indexPath: indexPath]
+ ColorsDemo.stack.perform(
+ asynchronous: { (transaction) in
+
+ transaction.delete(palette)
+ },
+ completion: { _ in }
+ )
+
+ default:
+ break
+ }
+ }
+ }
+
// MARK: UIViewController
@@ -51,7 +76,7 @@ class ListObserverDemoViewController: UITableViewController {
]
self.filterBarButton = filterBarButton
- self.dataSource = DiffableDataSource.TableView(
+ self.dataSource = EditableDataSource(
tableView: self.tableView,
dataStack: ColorsDemo.stack,
cellProvider: { (tableView, indexPath, palette) in
@@ -101,25 +126,6 @@ class ListObserverDemoViewController: UITableViewController {
)
}
- override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
-
- switch editingStyle {
-
- case .delete:
- let palette = ColorsDemo.palettes[indexPath: indexPath]
- ColorsDemo.stack.perform(
- asynchronous: { (transaction) in
-
- transaction.delete(palette)
- },
- completion: { _ in }
- )
-
- default:
- break
- }
- }
-
// MARK: Private
diff --git a/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ObserversViewController.swift b/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ObserversViewController.swift
index cbaa477..9731e94 100644
--- a/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ObserversViewController.swift
+++ b/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ObserversViewController.swift
@@ -30,17 +30,30 @@ class ObserversViewController: UIViewController {
// MARK: Private
-
+
+ @IBOutlet private dynamic weak var toggleTopBarButtonItem: UIBarButtonItem?
+ @IBOutlet private dynamic weak var toggleBottomBarButtonItem: UIBarButtonItem?
+ @IBOutlet private dynamic weak var stackView: UIStackView?
@IBOutlet private dynamic weak var topContainerView: UIView?
@IBOutlet private dynamic weak var bottomContainerView: UIView?
@IBAction private dynamic func toggleTopContainerView() {
-
- self.topContainerView?.isHidden.toggle()
+
+ UIView.animate(withDuration: 0.2) {
+
+ self.topContainerView!.isHidden.toggle()
+ }
+ self.toggleTopBarButtonItem!.isEnabled = !self.bottomContainerView!.isHidden
+ self.toggleBottomBarButtonItem!.isEnabled = !self.topContainerView!.isHidden
}
@IBAction private dynamic func toggleBottomContainerView() {
-
- self.bottomContainerView?.isHidden.toggle()
+
+ UIView.animate(withDuration: 0.2) {
+
+ self.bottomContainerView!.isHidden.toggle()
+ }
+ self.toggleTopBarButtonItem!.isEnabled = !self.bottomContainerView!.isHidden
+ self.toggleBottomBarButtonItem!.isEnabled = !self.topContainerView!.isHidden
}
}
diff --git a/Sources/DiffableDataSource.TableView.swift b/Sources/DiffableDataSource.TableView.swift
index 69976e8..eedc726 100644
--- a/Sources/DiffableDataSource.TableView.swift
+++ b/Sources/DiffableDataSource.TableView.swift
@@ -215,6 +215,21 @@ extension DiffableDataSource {
// }
}
+ @objc
+ open dynamic func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
+
+ return true
+ }
+
+ @objc
+ open dynamic func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
+
+ return .delete
+ }
+
+ @objc
+ open dynamic func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {}
+
// MARK: Private