Zoom для кнопок плюс/минус

Всем привет! У меня есть вот такие две кнопки который я объединил чтобы сделать такую кастомную кнопку:
введите сюда описание изображения

Я хочу сделать зум для кнопки плюс(zoom in) и для кнопки минус (zoom out). Причем приближение и отдаление должно работает в несколько нажатий, нажали на плюс приблизил немного, нажали еще раз на плюс и еще немного приблизил. Вот как сделать так несколько раз, я пока не понимаю. Немного работал с зумом и знаю базовые вещи поэтому прошу помочь:

Вот какой код у меня есть:

@objc func plusButtonAction(sender: UIButton!) {
    DispatchQueue.main.async{[weak self] in
      UIView.animate(withDuration: 0.3, animations: {[weak self] in
        self?.mImageView.transform = CGAffineTransform(scaleX: 1.3, y: 1.3)
      })
    }
  }

  @objc func minusButtonAction(sender: UIButton!) {
    DispatchQueue.main.async{[weak self] in
      UIView.animate(withDuration: 0.3, animations: {[weak self] in
        self?.mImageView.transform = .identity
      })
    }
  }

Знаю то, что нужно изменять zoomScale, но не очень понимаю как и где, подскажите пожалуйста, заранее спасибо.


Ответы (1 шт):

Автор решения: schmidt9

Можно сделать так

private let zoomStep: CGFloat = 0.1
private var zoomScale: CGFloat = 1.0


@objc func plusButtonAction(sender: UIButton!) {
  DispatchQueue.main.async{
    UIView.animate(withDuration: 0.3, animations: {
        self.zoomScale += self.zoomStep
        self.mImageView.transform = CGAffineTransform(scaleX: self.zoomScale, y: self.zoomScale)
    })
  }
}

@objc func minusButtonAction(sender: UIButton!) {
  DispatchQueue.main.async{
    UIView.animate(withDuration: 0.3, animations: {
      self.zoomScale -= self.zoomStep
      self.mImageView.transform = CGAffineTransform(scaleX: self.zoomScale, y: self.zoomScale)
    })
  }
}
→ Ссылка