На viewcontroller у меня есть 101 кнопка. Если нажата одна из первых 100 кнопок, я хочу изменить изображение кнопки 101 (у меня есть 100 изображений в этом проекте: image1, image2, image3 и т. Д.)Как изменить изображение одной кнопки, нажав другие кнопки?
Итак, я сделал это, указав каждую кнопку тег от 0-100, а затем сделать переключатель заявление на основе sender.tag
@IBOutlet weak var button101 : UIButton!
var i = 1
// I hooked up all the other 100 buttons to a single IBAction
@IBAction func buttonTapped(sender: UIButton) {
switch sender.tag {
case 0: i = 1
let image = UIImage (named: "image\(i)")
button101.setImage(image, forState:.Normal)
case 1: i = 2
let image = UIImage (named: "image\(i)")
button101.setImage(image, forState:.Normal)
case 2: i = 3
let image = UIImage (named: "image\(i)")
button101.setImage(image, forState:.Normal)
case ..: // etc. until case 99 (because button 100 has tag 99)
default: break
Это супер некрасиво код работает: Он изменяет изображение кнопки № 101 в указанное изображение (я). Но я хочу более элегантное и лучшее решение.
У меня 2 вопроса:
- Как Инициализируем 'образ' постоянной/переменной в лучшую сторону (за пределами IBAction)?
- Какой тип (цикл) используется вместо этого большого оператора switch? Итак: я хочу определить, какая кнопка нажата, а затем обновить значение var i, прокрутить изображения и найти и обновить изображение кнопки101 с изображением (i).
Надеюсь, мои вопросы ясны. Пожалуйста, дайте мне знать, если это не так. Помощь очень ценится!
Это действительно решение для меня, спасибо! Я знал, что это может быть простой код. Я был рядом, но не мог понять. И да, таким образом, нет необходимости инициализировать переменную изображения в верхней части моего диспетчера представлений. – codeDude