tapGesture изменить цвет
Я пытаюсь сделать UIImageView
названный rDot
доступно с помощью tapGesture. Когда просмотр изображения rDot
прослушивается, я хочу другой UIImageView
на другом viewController с именем wCircle, чтобы стать красным. Проблема в том, что код запускается, но когда я нажимаю rDot
другое изображение wCircle
не краснеет.
override func viewDidLoad() {
super.viewDidLoad()
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:)))
rDot.isUserInteractionEnabled = true
rDot.addGestureRecognizer(tapGestureRecognizer)
}
func imageTapped(tapGestureRecognizer: UITapGestureRecognizer)
{
let wCircle = UIImageView(image: UIImage(named:"wCircle")?.withRenderingMode(.alwaysTemplate)) //error here
wCircle.tintColor = UIColor.red
}
5 ответов
В контексте кода Swift EXC_BAD_INSTRUCTION обычно означает, что вы попали в ловушку компилятора, то есть неопределенную инструкцию, вставленную в код компилятором из-за ошибки, обнаруженной во время выполнения. Наиболее распространенной причиной этого являются:
Не удалось развернуть необязательный параметр. Это может быть принудительное развертывание (!) или неявное развертывание (доступ к неявно развернутому необязательному значению, равному nil).
массив вне границ
неудачное принудительное приведение (как!), либо из-за того, что значение было необязательным, либо из-за неправильного типа.
Проверьте, если wCircle не ноль. Проверьте правильность подключения розетки.
Способ, которым вы инициализируете ваш UITapGestureRecognizer, неверен. Пытаться
UITapGestureRecognizer(target: self, action: #selector(ViewController.imageTapped(tapGestureRecognizer:)))
замещать ViewController
с именем класса вашего контроллера
Убедитесь, что ваш объект wCircle присутствует и успешно инициализирован
Убедитесь, что ваши ресурсы изображения имеют изображение с точным именем "wCircle", чувствительное к регистру, опять же, в ресурсах, не входящих в пакет проекта, я думаю, что UIImageView не может быть инициализирован, потому что изображение с "wCircle" не существует в ресурсах
Что такое "wCircle"? UIImage не имеет свойства с именем tintColor
, если вы хотите изменить цвет изображения, измените его контейнер UIImageView в tintColor