Как изменить размер UIImageView при нажатии на? - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь поиграть с UIImageView.Я хочу что-то, что, когда я нажимаю на изображение, оно делает изображение в два раза больше его размера (всегда делайте его вдвое больше, поэтому, если я нажимаю несколько раз, оно становится больше).

Это то, что у меня есть в настоящее время, иЯ не уверен, как построить функцию handlePan, которую я изначально хотел использовать.Я использовал жест панорамирования, потому что я не знаю, как конкретно подойти к жесту касания.Если мой код не в правильном направлении, пожалуйста, не стесняйтесь предложить, что будет работать лучше.Я был бы очень признателен за любой вклад.

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var ImageView1: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let gesterRecognizer = UIPanGestureRecognizer(target: self, action: #selector(handlePan)) //handlePan is the tap function I am trying to build
        ImageView1.isUserInteractionEnabled = true
        ImageView1.addGestureRecognizer(gesterRecognizer)
    }
}

1 Ответ

0 голосов
/ 25 ноября 2018

Как уже упоминалось в комментариях, в первую очередь вам нужен распознаватель жестов касания вместо одного жеста панорамирования.В следующем коде вы сможете удваивать ширину и высоту изображения каждый раз, когда пользователь нажимает на imageView.

В этой реализации я хотел анимировать переход за 0,5 секунды, что не является необходимым, но может показаться, что сделать это лучше.Также, предполагая, что вы хотите, чтобы изображение всегда находилось в центре, вам нужно установить центр в центр кадра, чтобы он не плавал при изменении кадра изображения.Но если вы хотите иметь другой макет или расположение, вам нужно обновить следующую строку:

self.imageView.center = self.view.center

Также вам нужно включить свойство взаимодействия с пользователем imageView, установив его в true.

import UIKit

class ViewController: UIViewController {
@IBOutlet var imageView: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()

    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap))
    imageView.isUserInteractionEnabled = true
    imageView.addGestureRecognizer(tapGestureRecognizer)
}


@objc func handleTap() {
    UIView.animate(withDuration: 0.5) {
        self.imageView.frame.size.height *= 2
        self.imageView.frame.size.width *= 2
        self.imageView.center = self.view.center
    }
}

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...