Есть ли лучший способ изменить изображение в ImageView, нажав кнопку? - PullRequest
0 голосов
/ 03 апреля 2020

В настоящее время я изменяю представление изображения, выполняя следующие действия:

@IBOutlet var bgImage: UIImageView!

создавая представление UIimage, подключенное в раскадровке, и

var counter = 0
    @IBAction func ChangePic(){

        //print(counter)
        if(counter == 15){
              counter = 0
        }

        let image: UIImage = UIImage(named: String(counter))!
        bgImage = UIImageView(image: image)
        bgImage.image = UIImage(named: String(counter))
        self.view.addSubview(bgImage!)
        counter = counter + 1

    }

Изменяя представление изображения здесь, эта функция подключена к кнопке в раскадровке, чтобы при нажатии она меняла изображение. причина в том, что счетчик состоит в том, что фотографии пронумерованы от 0 до 14, поэтому я могу легко их отобразить. Это работает достаточно хорошо, но изображения изменяют свои размеры и продолжают появляться друг на друге

Ответы [ 2 ]

2 голосов
/ 03 апреля 2020

Поскольку у вас уже есть imageView bgImage, все, что вам нужно сделать, это установить свойство изображения в bgImage. Вам не нужно каждый раз создавать новый imageView.

@IBAction func ChangePic(){

   if(counter == 15){
          counter = 0
    }
    bgImage.image = UIImage(named: String(counter))
    counter = counter + 1
}
1 голос
/ 03 апреля 2020

Если вы просто хотите изменить изображение, вам просто нужно сделать это:

@IBAction func ChangePic(){

        //print(counter)
        if(counter == 15){
              counter = 0
        }

        bgImage.image = UIImage(named: String(counter))
        counter = counter + 1

    }

Ваш текущий код:

@IBAction func ChangePic(){

        //print(counter)
        if(counter == 15){
              counter = 0
        }

        // You create new image
        let image: UIImage = UIImage(named: String(counter))!

        // You set new instance to your imageView with your updated image (No need to do this because the object is not nil)
        bgImage = UIImageView(image: image)

        // You set again your updated image (only this line required )
        bgImage.image = UIImage(named: String(counter))

        // No needed
        self.view.addSubview(bgImage!)


        counter = counter + 1

    }
...