У меня есть приложение для рисования. Внутри моего VC есть пять изображений с пятью цветами в них. Я хочу иметь возможность щелкнуть по изображению и изменить цвет штриха. Это можно легко сделать, если я повторяю себя в контроллере view, добавляя указатели распознавания жестов в каждый UIImageView и имея свою индивидуальную функцию «селектора». Такие, какПользовательский UIView с tapGesture
func redTapped() {}
func blueTapped() {}
Однако, я хочу, чтобы иметь возможность сделать код более понятным путем создания пользовательского класса (ColorImageView.Swift) для этих ImageViews так, что, когда я задаю класс по этим кнопкам, они автоматически получают жест нажатия, и мой VC автоматически получает информацию о том, какой из них прослушивается. На данный момент я могу распечатать «imagePressed» для каждого изображения, которое присваивается моему классу. Однако я не могу различить, какой из них был нажат. Ниже мой код ColorImageView.Swift
import Foundation
class ColorImageView: UIImageView {
private func initialize() {
let touchGesture = UITapGestureRecognizer(target: self, action: #selector(ColorImageView.imagePressed(_:)))
touchGesture.numberOfTapsRequired = 1
self.userInteractionEnabled = true
self.addGestureRecognizer(touchGesture)
}
override init(frame: CGRect) {
super.init(frame: frame)
initialize()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initialize()
}
func imagePressed(gestureRecognizer: UITapGestureRecognizer) {
print("image pressed \(gestureRecognizer)")
}
}
Мои имена ImageView являются red.png, green.png, blue.png ... и т.д.
Благодаря
Пожалуйста, покажите ваш ViewController кодирования Я имею в виду, который вы добавили ColorImageView к ViewController – user3182143
Я не имею никакого кода для моего VC еще. Я хочу, чтобы сначала можно было отличить, какой образView был использован из пользовательского класса. Затем, когда это будет завершено, я могу использовать протокол для передачи информации в свой VC. На данный момент я могу распечатать, как показано ниже, когда я нажал изображение ... ..... Изображение нажато; target = <(action = imagePressed :, target = ) >> –
user172902
Где вы установили изображения? – user3182143