Skip to content

Commit

Permalink
Make the add/remove buttons swap with each other.
Browse files Browse the repository at this point in the history
  • Loading branch information
lardieri committed Jun 21, 2021
1 parent 7f4b652 commit 2ee3d3b
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 2 deletions.
1 change: 1 addition & 0 deletions src/Entry Card/Asset identifiers.swift
Expand Up @@ -8,6 +8,7 @@ import Foundation
enum Images {

static let gearshape = "gearshape"
static let emptyPicture = "Empty Picture"

}

Expand Down
43 changes: 41 additions & 2 deletions src/Entry Card/SettingsViewController.swift
Expand Up @@ -43,15 +43,48 @@ class SettingsViewController: UITableViewController {
}

@IBAction func addImageTapped(_ sender: UIBarButtonItem) {

if let imageIndex = addImageButtons.firstIndex(of: sender),
var toolbarItems = toolbar.items,
let toolbarIndex = toolbarItems.firstIndex(of: sender) {

let imageView = imageViews[imageIndex]
chooseImage(forPosition: imageIndex) { [weak self, weak imageView] in
guard let self = self, let imageView = imageView else { return }

if imageView.image != Self.emptyPicture {
toolbarItems[toolbarIndex] = self.removeImageButtons[imageIndex]
self.toolbar.setItems(toolbarItems, animated: true)
}
}
}
}

@IBAction func removeImageTapped(_ sender: UIBarButtonItem) {
if let imageIndex = removeImageButtons.firstIndex(of: sender),
var toolbarItems = toolbar.items,
let toolbarIndex = toolbarItems.firstIndex(of: sender) {
imageViews[imageIndex].image = Self.emptyPicture

toolbarItems[toolbarIndex] = addImageButtons[imageIndex]
toolbar.setItems(toolbarItems, animated: true)
}
}

@IBAction func imageViewTapped(_ sender: UITapGestureRecognizer) {

if let imageView = sender.view as? UIImageView,
let imageIndex = imageViews.firstIndex(of: imageView),
var toolbarItems = toolbar.items,
let toolbarIndex = toolbarItems.firstIndex(of: addImageButtons[imageIndex]) {

chooseImage(forPosition: imageIndex) { [weak self, weak imageView] in
guard let self = self, let imageView = imageView else { return }

if imageView.image != Self.emptyPicture {
toolbarItems[toolbarIndex] = self.removeImageButtons[imageIndex]
self.toolbar.setItems(toolbarItems, animated: true)
}
}
}
}

@IBAction func brightnessChanged(_ sender: UISwitch, forEvent event: UIEvent) {
Expand All @@ -60,4 +93,10 @@ class SettingsViewController: UITableViewController {
}
}

private func chooseImage(forPosition index: Int, completion: @escaping () -> Void) {
completion()
}

private static let emptyPicture = UIImage(named: Images.emptyPicture)

}

0 comments on commit 2ee3d3b

Please sign in to comment.